So habe ich eine Datei-Upload-Site, die ich HTML5 Chunking-Fähigkeit zum Hochladen mehrerer Dateien zu entwickeln. es funktioniert gut in Chrome, Firefox, IE (grundlegend Browser mit HTML5-Fähigkeit) sowie Safari, aber kürzlich habe ich es getestet, Safari 6.0.5 funktioniert gut, aber auf Safari 6.1, wenn ich mehrere Dateien hochladen, sind einige Dateien 0 Bytes. Ich bin mir nicht sicher, was passiert ist.Mehrere Datei-Upload funktioniert nicht in Safari 6.1 oben, es sei denn Web Inspector geöffnet
Wenn ich getestet habe, lade ich etwa 70 Dateien mit insgesamt 200 MB, und jede Datei ist zwischen 5-8MBisch .. so gibt es keine Chunking Geschehen .. aber wenn ich auf dem Server, die meisten Datei sind 0 Bytes (wie nie hochgeladen werden) außer ein paar Dateien (wahrscheinlich 3-5 Dateien)
Gibt es einen Unterschied zwischen Safari 6.0.5 und darunter, mit Safari 6.1?
Mein Code ist im Grunde genommen in Kurzform: Javascript wird jede Datei chunk, wenn es größer als 10MB/Datei ist, wenn nicht wird es einfach hochladen, wie es ist. dann wird PHP den Upload übernehmen (Standard-Datei-Upload-Stil 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);
Code etwas, das es ist klug, wie das ...
eine Ahnung, was mit Safari 6.1 ist falsch?
Ich überprüfe der tmp-Ordner, beim Upload der Datei tmp 0 Bytes .. ist
HINWEIS: Safari 6.1+, wenn Web-Inspektor auf, richtig jede Datei hochgeladen, wenn er ausgeschaltet ist, von 10 Dateien, nur 3 wurden hochgeladen, der Rest ist 0 Bytes. Was verursacht diesen Unterschied?
Dies kann oder kann nicht helfen, aber es scheint in Safari 7.0 zu funktionieren. Ich glaube, das ist wahrscheinlich ein Bug mit Safari 6.1, da ich mehrfach das gleiche Problem in 6.1 gesehen habe. – Telshin
@Telshin es passiert immer noch auf Safari 7 – Harts
Wie rufen Sie die Funktion 'uploadFile()'? – R3tep