Mam więc stronę do przesyłania plików, którą rozwijam przy użyciu możliwości HTML5 do dzielenia plików w celu przesłania wielu plików. działa dobrze w przeglądarkach Chrome, Firefox, IE (w zasadzie przeglądarka z obsługą HTML5) oraz Safari, ale ostatnio testuję, Safari 6.0.5 działa dobrze, ale w Safari 6.1, jeśli wgrani kilka plików, niektóre pliki to 0 bajty. Nie jestem pewien, co się stało.Przesyłanie wielu plików nie działa w Safari 6.1 powyżej, chyba że inspektor sieci otworzy
Po przetestowaniu przesyłam około 70 plików w sumie 200MB, a każdy plik jest między 5-8MBisza ... więc nie ma tu żadnych problemów ... ale kiedy sprawdzam na serwerze, większość plików ma 0 bajtów (jak nigdy pobierz) z wyjątkiem kilku plików (prawdopodobnie 3-5 plików).
Czy jest jakaś różnica między przeglądarką Safari 6.0.5 a przeglądarką Safari 6.1?
Mój kod jest w zasadzie w pigułce: Javascript będzie porąbał każdy plik, jeśli jest większy niż 10 MB/plik, jeśli nie, po prostu wgrać będzie taki, jaki jest. , a następnie PHP zajmie się przesyłaniem (standardowy styl przesyłania plików move_uploaded_file()).
function uploadFile(file_blob_chunk, file_name, file_part, total_file_chunk, file_id) {
//create a progress bar based on file id (check if it's the 0 part, otherwise there will be multiple bar for same file)
if(file_part == 0) {
progressBar(file_id);
}
//ajax call for creating multipart data form
fd = new FormData();
fd.append("file_for_upload", file_blob_chunk);
fd.append("file_id", file_id);
fd.append("file_name", file_name);
fd.append("file_part", file_part);
xhr = new XMLHttpRequest();
xhr.fid = file_id;
xhr.fid_name = file_name;
xhr.fid_part = file_part;
xhr.fid_total_chunk = total_file_chunk;
xhr.upload.fid = file_id;
xhr.upload.fid_part = file_part;
xhr.upload.fid_total_chunk = total_file_chunk;
xhr.open("POST", "datas/upload/" + file_name + '/' + file_part, true);
xhr.send(fd);
kod mądry to jest coś takiego ...
jakiś pomysł co jest nie tak z Safari 6.1?
sprawdzić folder tmp plik tmp podczas wysyłania jest 0 bajtów ..
UWAGA: Safari 6.1+, Jeśli inspektor internetowych na każdy plik zostanie wysłany poprawnie, jeśli jest wyłączony, z 10 plików, tylko 3 zostały przesłane, reszta to 0 bajtów. co powoduje tę różnicę?
To może lub nie może pomóc, ale wygląda na to, że działa w Safari 7.0. Uważam, że jest to prawdopodobnie błąd w Safari 6.1, ponieważ wiele osób zgłosiło ten sam problem w wersji 6.1. – Telshin
@Telshin nadal się zdarza na Safari 7 – Harts
W jaki sposób wywołujesz funkcję 'uploadFile()'? – R3tep