ios中的fileupload插件无法正常工作

时间:2012-06-13 07:17:02

标签: ipad cordova phonegap-plugins

我正在使用xcode在mac os中开发一个phonegap项目。在xcode中,如果我创建一个基于cordova的应用程序,它会自动创建cordova-1.6.0.js。我正在使用fileupload插件将svg文件发送到我的服务器。在fileupload.js中,我已经编写了警告fileuplaoder函数,如下所示,

 var FileUploader = function() { 
    alert("gi");
}

此警报正在运行,但是当我在上传功能下提供aler时,

FileUploader.prototype.upload = function(server, file, params, fileKey, fileName, mimeType, success, fail, progress) {
    alert("upload");
    this._doUpload('upload', server, file, params, fileKey, fileName, mimeType, success, fail, progress);
};

此警报无效。我在html页面中对此插件的调用是,

window.plugins.fileUploader.upload('http:192.168.1.54:8080/downloadFiles', '/Users/User/Library/Application Support/iPhone Simulator/5.0/Applications/408DBBC7-67F7-4E8B-B41C-663CDC0377B5/Documents/image5_1.jpg.txt.svg', {foo: 'bar'}, 'myPhoto', 'image5_1.jpg.txt.svg', 'image/svg', 
                                                function(result) {
                                                console.log('Done: ' + result);
                                                }, 
                                                function(result) {
                                                console.log("Error: " + result);
                                                }, 
                                                function(loaded, total) {
                                                var percent = 100 / total * loaded;
                                                console.log('Uploaded  ' + percent);

                                                }
                                                );

在fileupload.js中有cordova.addConstructor方法。但在我生成的cordova.1.6.0.js文件中没有这样的方法。我不知道发生了什么事。 pl帮我处理这个插件。

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。 cordova文件api本身有一个上传和下载选项。它的工作正常。代码是,

document.addEventListener("deviceready", onDeviceReady, false);

            // Cordova is ready
            //
            function onDeviceReady() {
                window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail);
            }

            function gotFS(fileSystem) {
                fileSystem.root.getFile("image5_2.jpg.svg", {create: true, exclusive: false}, gotFileEntry, fail);
            }

            function gotFileEntry(fileEntry) {
                var localpath=fileEntry.fullPath;
                uploadPhoto(localpath);
                //fileEntry.createWriter(gotFileWriter, fail);
            }

            function uploadPhoto(imageURI) {
                alert(imageURI);
                var options = new FileUploadOptions();
                options.fileKey="file";
                options.fileName="image5_2.jpg.svg";
                options.mimeType="image/svg+xml";

                var params = new Object();
                params.value1 = "test";
                params.value2 = "param";

                options.params = params;

                var ft = new FileTransfer();
                ft.upload(imageURI, "http://192.168.1.54:8080/POC/fileUploader", win, fail, options);
            }

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

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

pl使用它。