2011-01-12 2 views
1

was ich versuche zu tun ist, eine Datei hochladen, in 3 Teile schneiden und jeder zu verschiedenen Datenbanken, so dass ich kann überschüssige es später durch Verbinden aller Teile.wie binäre Zeichenfolgen mit AJAX zu PHP senden - einschließlich html5 Datei API - Blob Slice

das einzige Problem, das ich habe, ist das Senden der Binär-String zu PHP, damit ich es in meine Datenbanken schreiben kann. Ich habe keine Schlaufe, was die Einstellung der Content-Type-Header usw. Viele andere Leute scheinen ein ähnliches Problem zu haben, konnte ich keine befriedigende Lösung finden.

Hilfe?

CODE/

index.php

<input type="file" id="file" name="file" onchange="filesProcess(this.files)" /><br/> 

javascript

function filesProcess(files) { 

for (i = 0; i<files.length;i++){  

var file = files[i]; 
var users = 3; 
var abschnitt = file.size/users; 


var start = 0; 
for (var z = 1; z<=users; z++){ 
    sliceFiles(z, users, start, file, abschnitt); 
start = start + abschnitt + 1; 
    } 


} 
} 







function sliceFiles(z, users, start, file, abschnitt) { 
var reader = new FileReader(); 
var blob = file.slice(start, abschnitt); 
reader.readAsBinaryString(blob); 
reader.onloadend = function(evt) { 
var contentfile = evt.target.result; 
    upload(z, users, contentfile); 

    } 
} 








function upload(z, users, contentfile) { 

xhr = new XMLHttpRequest(); 
xhr.onreadystatechange=function(){ 
if (xhr.readyState==4 && xhr.status==200) 
    { 
     $("#output").html(xhr.responseText); 
    } 
} 

if (z == 1){ 
xhr.open("POST","upload_1.php",true); 
} 
if (z == 2){ 
xhr.open("POST","upload_2.php",true); 
} 
if (z == 3){ 
xhr.open("POST","upload_3.php",true); 
} 

xhr.setRequestHeader("Content-type", "multipart/form-data"); 
xhr.send("inhalt="+contentfile); 




} 
+0

Sein nicht Inhaltstyp, dessen Übertragungscodierung und für binäre gesetzt werden sollte binary' – RobertPitt

+0

ich bin in der Lage solche Sachen zu bekommen dies-was ist es ?: ç , ± © Úo7: ¸ÚÅq ¢ 3¡ôw}; ¥ MÿÊíeuμ¹ªâq (@ $ KêOégGVßFXÞ ¢ ÔÔ? $ H6) = ® $ Ú¾míÙövéåÉå¾ ¾q © £: ÉËNëcã «_m (j1lA½Äm #? Ô = [qGéÚ ¢ ÙÆö> W Ý â â â J s s 7 s F F F F F Í::: ï ï ï ï ï ï ï ï ï ï ï ï v v – stef

Antwort

0

Sie versuchen, den Klecks als String zu senden? Wie auch immer, vielleicht ist der Link unten hilfreich. Es geht um einen Chunked File Uploader für Google Gears. Ich habe eine ähnliche Lösung implementiert, als Gears noch heiß war. Die neue Implementierung der JS-Datei-API ist nicht so unterschiedlich. Ich denke also, Sie könnten die Lösung an Ihre Bedürfnisse anpassen (und für die Verwendung mit der neuen JS File API). `Content-Transfer-Encoding:

http://perplexed.co.uk/549_gears_multiple_file_upload.htm