index.html<form action="upload.php" method="post" enctype="multipart/form-data"> <input name="plik" type="file" id="plik" size="10"/> <input name="max_file_size" type="hidden" value="10485760" /><br> <input value="Wyślij plik" type="submit" id="button" onclick="wyslijPlik()"/> <progress value="0" max="100" id="postep"></progress><br> <output id="status"></output>
upload.js (pasek postępu)
function wyslijPlik() {
var plik=document.getElementById("plik").files[0];
var formularz=new FormData(); //tworzymy nowy formularz do wyslnia
formularz.append("plik", plik); //dodajemy do formularza pole z naszym plikiem
/* wysylamy formularz za pomoc٠AJAX */
var xhr=new XMLHttpRequest();
xhr.upload.addEventListener("progress", postepWysylania, false);
xhr.addEventListener("load", zakonczenieWysylania, false);
xhr.addEventListener("error", bladWysylania, false);
xhr.addEventListener("abort", przerwanieWysylania, false);
xhr.open("POST", "upload.php", true);
xhr.send(formularz);
}
function postepWysylania(event) {
var procent=Math.round((event.loaded/event.total)*100);
document.getElementById("status").innerHTML="Wysłano "+konwersjaBajtow(event.loaded)+" z "+konwersjaBajtow(event.total)+" ("+procent+"%)";
document.getElementById("postep").value=procent;
}
function zakonczenieWysylania(event) {
document.getElementById("status").innerHTML=event.target.responseText;
}
function bladWysylania(event) {
document.getElementById("status").innerHTML="Wysyłanie nie powiodło się";
}
function przerwanieWysylania(event) {
document.getElementById("status").innerHTML="Wysyłanie zostało przerwane";
}
function konwersjaBajtow(bajty) {
var kilobajt=1024;
var megabajt=kilobajt*1024;
var gigabajt=megabajt*1024;
var terabajt=gigabajt*1024;
if (bajty>=0 && bajty<kilobajt) return bajty+" B";
else if(bajty>=kilobajt && bajty<megabajt) return Math.round(bajty/kilobajt)+" kB";
else if(bajty>=megabajt && bajty<gigabajt) return Math.round(bajty/megabajt)+" MB";
else if(bajty>=gigabajt && bajty<terabajt) return Math.round(bajty/gigabajt)+" GB";
else if(bajty>=terabajt) return Math.round(bajty/terabajt)+" TB";
else return bajty+" B";
}
upload.php<?php
/* utworzenie zmiennych */
$folder = 'upload/';
$plik_nazwa=$_FILES['plik']['name'];
$plik_lokalizacja=$_FILES['plik']['tmp_name']; //tymczasowa lokalizacja pliku
$plik_mime=$_FILES['plik']['type']; //typ MIME pliku wysłany przez przeglądarkę
$plik_rozmiar=$_FILES['plik']['size'];
$plik_blad=$_FILES['plik']['error']; //kod błędu
if (!$plik_lokalizacja) {
exit("Nie wysłano żadnego pliku"); }
switch ($plik_blad) {
case UPLOAD_ERR_OK:
break;
case UPLOAD_ERR_NO_FILE:
break;
case UPLOAD_ERR_INI_SIZE:
case UPLOAD_ERR_FORM_SIZE:
exit("Przekroczony maksymalny rozmiar pliku."); break;
default:
break;
}
$dozwolone_rozszerzenia=array("jpeg", "jpg", "tiff", "tif", "png", "gif"); if (!in_array($plik_rozszerzenie, $dozwolone_rozszerzenia, true)) { exit("Niedozwolone rozszerzenie pliku."); }
exit("Nie udało się przenieść pliku."); }
echo "Plik został zapisany."; ?>
Upload.php działa - pliki sie przesyłają. Skrypt
upload.js za każdym razem wyświetla błąd:
document.getElementById("status").innerHTML="Wysyłanie nie powiodło się". Co może być przyczyną?
Wszystko brałem stąd
LINK