Javascript Windows 8 PhoneGap文件传输因文本文件而失败
我试图上传一个文件到服务器,它说它成功了,但它从来没有传输。我现在硬编码了一些值,但代码如下:Javascript Windows 8 PhoneGap文件传输因文本文件而失败,javascript,cordova,windows-store-apps,fiddler,Javascript,Cordova,Windows Store Apps,Fiddler,我试图上传一个文件到服务器,它说它成功了,但它从来没有传输。我现在硬编码了一些值,但代码如下: var options = new FileUploadOptions(); options.fileKey = "file"; options.fileName = "readme.txt"; imageURI = "C:\\Users\\me\\AppData\\Local\\Packages\\MyApp_68mjwy0kbd4mc\\LocalState\\readme.txt" op
var options = new FileUploadOptions();
options.fileKey = "file";
options.fileName = "readme.txt";
imageURI = "C:\\Users\\me\\AppData\\Local\\Packages\\MyApp_68mjwy0kbd4mc\\LocalState\\readme.txt"
options.mimeType = "text/plain";
options.httpMethod = "POST";
options.chunkedMode = false;
var ft = new FileTransfer();
ft.upload(imageURI, encodeURI("http://example.com/upload/upload.php"), fileUploadWin, fileUploadFail, options);
当我看fiddler时,我看到两个文件名正在设置:
-----------------------------7de36c253902b2
内容配置:表单数据;name=“source”;filename=“readme.txt”;filename=“blob”
内容类型:文本/纯文本
这是一个使用FileWriter编写的UTF-8文本文件。我在磁盘上看到该文件,其中包含我写入的base64字符串。如果您正在开发windows应用商店应用,请尝试使用此文件而不是filetransfer(phonegap) 使用文件选择器:
function uploadFile() {
var filePicker = new Windows.Storage.Pickers.FileOpenPicker();
filePicker.fileTypeFilter.replaceAll(["*"]);
filePicker.pickSingleFileAsync().then(function (file) {
if (!file) {
printLog("No file selected");
return;
}
var upload = new UploadOp();
var uriString ="";//serverurl
upload.start(uriString, file);
// Store the upload operation in the uploadOps array.
uploadOperations.push(upload);
});
}
使用路径:
function uploadFile() {
// Asynchronously create the file in the Application Local folder.
Windows.Storage.ApplicationData.current.localFolder.getFileAsync("readme.txt").done(function (file) {
var upload = new UploadOp();
var uriString = document.getElementById("serverAddressField").value;
upload.start(uriString, file);
// Store the upload operation in the uploadOps array.
uploadOperations.push(upload);
});
}我想继续使用PhoneGap的API。这使用WinJS,在其他平台上不起作用。另外,您忘了。(完成)关于文件的异步调用。无论哪种方式,我都在看PhoneGap实现。Fiddler看到的服务器响应是什么?在Fiddler中看到的引号是否真的像那样混乱?或者在这里发布时是否键入了错误?这是Fiddler的复制和粘贴。这实际上是cordova/PhoneGap中的一个错误。我很可能会这样做提交请求,然后更新我的答案。