2013-11-29 3 views
0

Я пытаюсь использовать Брауэр можно загрузить файл, но если я использую загрузку титана, он не работает, код Брауэр является Брауэр загрузить файл:Titanium HTTPClient не может загрузить файл

<form action="upload.php" method="post" 
enctype="multipart/form-data"> 
<label for="file">Filename:</label> 
<input type="file" name="file" id="file"><br> 
<input type="submit" name="submit" value="Submit"> 
</form> 

upload.php файл:

$tmp_file=$_FILES['file']['tmp_name']; 
$target_file=basename($_FILES['file']['name']); 
move_uploaded_file($tmp_file, "files/".$target_file); 

мой титановый код:

var webaddress = 'http://' + address.value + ':' + port1.value + '/scanbatch/index.php'; 
xhr.open('POST',webaddress); 
xhr.send({files : Titanium.Filesystem.getFile(Ti.Filesystem.applicationDataDirectory,'scanbatch.txt')}); 

он может ее rk, но вебсервис ничего не получил, просто получил заголовок.

и, кстати, я могу отправить короткий xml через httpclient, но если xml будет длиннее, то когда он не сможет отправить, более долгое время терпит неудачу, я имею в виду не всегда, если xml длиннее 512 КБ , Он всегда терпит неудачу.

мой код

var webaddress = 'http://' + address.value + ':' + port1.value + '/liveho/scanbatch'; 
xhr.open('POST',webaddress); 
xhr.send(xmlscript); 

моя функция OnLoad является

onload : function(e) { 
      alert(this.responseText); 
     }, 

пожалуйста, помогите мне спасибо

+0

Что такое 'xmlscript'? –

ответ

0

Я дам вам несколько советов, чтобы сузить проблему (Titanium сторона) ,

Проверьте, подходит ли путь к файлу?

var file = Ti.Filesystem.getFile(Ti.Filesystem.applicationDataDirectory + 
    Ti.Filesystem.getSeparator() + 'scanbatch.txt'); 

if(file.size) 
    xhr.send({files : file}); 
else 
    Ti.API.info("File " + file.nativePath + " doesn't exist or is empty"); 

Если это не правильный путь, попытаться найти его в resourcesDirectory:

var file = Ti.Filesystem.getFile(Ti.Filesystem.resourcesDirectory + 
    Ti.Filesystem.getSeparator() + 'scanbatch.txt'); 

Ваша проблема с отключениями может быть уменьшить, установив свойство тайм-аута. Функция onerror также может помочь вам найти проблему. Свойство onsendstream позволит вам узнать о ходе загрузки.

Ti.Network.createHTTPClient({ 
... 
    onload : function(e) { 
     alert(this.responseText); 
    }, 
    onerror : function(e) { 
     Ti.API.debug(e.error); 
     alert(e.error); 
    }, 
    onsendstream : function(e) { 
     var progress = parseFloat(e.progress)*100; 
     Ti.API.info("Upload progress:" + progress + "%"); 
     //e.progress will contain a value from 0.0-1.0 with the progress of the upload 
     alert("Upload progress:" + progress + "%"); 
    }, 
    timeout : 5000 // in milliseconds 
... 
}); 
+0

Спасибо, но путь верный, и мой ресурс тайм-аута - 35000 – user3050782

+0

, и вебсервис всегда обращает меня в очень короткие сроки. ошибка просто зависит от моего размера файла, я не знаю, почему – user3050782

+0

В этом случае этот случай: 'xhr.send (xmlscript);' или другой: 'xhr.send ({files: file});'? – kabomi

Смежные вопросы