2014-04-12 43 views
2

我正在用cordova 3.4.0進行工作。我添加了FileTransfer插件用於圖像上傳,圖像從庫和相機工作正常,但是嘗試上傳Logcat時沒有上傳的提供錯誤: processMessage失敗:錯誤:ReferenceError:FileTransfer沒有在file:/// android_asset/WWW/JS/cordova.js:1035 我已經做了所有建立在config.xml和AndroidMainfest.xmlFileTransfer在cordova中沒有定義錯誤3.4.0

config.xml中

<feature name="File"> 
    <param name="android-package" value="org.apache.cordova.file.FileUtils" /> 
    <param name="onload" value="true" /> 
</feature> 
<feature name="FileTransfer"> 
    <param name="android-package" value="org.apache.cordova.filetransfer.FileTransfer" /> 
</feature> 

AndroidMainfest.xml

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

cordova_plugins.js

{ 
    "file": "plugins/org.apache.cordova.file-transfer/www/FileTransfer.js", 
    "id": "org.apache.cordova.file-transfer.FileTransfer", 
    "clobbers": [ 
     "window.FileTransfer" 
    ] 
}, 

圖片上傳代碼

var ft = new FileTransfer();      
var options = new FileUploadOptions();      
options.fileKey="vImage1";      
options.fileName=imagefile.substr(imagefile.lastIndexOf('/')+1); 
options.mimeType="image/jpeg"; 
var params = new Object(); 
params.value1 = "test"; 
params.value2 = "param";      
options.params = params; 
options.chunkedMode = false;      
ft.upload(imagefile, serviceURL, win, fail, options); 

那麼,什麼是錯誤的代碼? .. 提前致謝。

解決:

我已經解決了這個問題。我在html頁面中添加了以下插件鏈接。

<script type="text/javascript" charset="utf-8" src="plugins/org.apache.cordova.file/www/File.js"></script> 
<script type="text/javascript" charset="utf-8" src="plugins/org.apache.cordova.file-transfer/www/FileTransfer.js"></script> 

回答

0

HI我不知道你錯了

但這個代碼工作正常

var options = new FileUploadOptions(); 
     options.fileKey = "file"; 
     options.fileName = uploadimageurl.substr(uploadimageurl.lastIndexOf('/') + 1); 


     var params = {}; 
     params.value1 = "test"; 
     params.value2 = "param"; 

     options.params = params; 
     var url=unlserviceurl+""+uploadarray.fileurl; 
     var ft = new FileTransfer(); 
     ft.upload(uploadimageurl, encodeURI(url), win, fail, options); 

var win = function (r) { 
    console.log("Code = " + r.responseCode); 
    console.log("Response = " + r.response); 
    console.log("Sent = " + r.bytesSent); 
} 

var fail = function (error) { 
    alert("An error has occurred: Code = " + error.code); 
    console.log("upload error source " + error.source); 
    console.log("upload error target " + error.target); 
} 

嘗試使用此代碼

+0

@Kahir:我也試過.....錯誤是關於文件傳輸... – Ved

+0

,但這對我工作正常 – kathir

+0

cordova 3.4.0 ...? – Ved

0

可以肯定的:你添加科爾多瓦插件文件和Filtransfer該項目?

+0

這應該是一個評論,而不是一個答案。請等到您有足夠的信譽評論,而不是垃圾郵件的答案部分。 – Chris