[ https://issues.apache.org/jira/browse/CB-9600?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15044691#comment-15044691 ]
ASF subversion and git services commented on CB-9600: ----------------------------------------------------- Commit a9470ff1cc313be542f625f857d33fb14a520d6f in cordova-plugin-file-transfer's branch refs/heads/master from [~daserge] [ https://git-wip-us.apache.org/repos/asf?p=cordova-plugin-file-transfer.git;h=a9470ff ] CB-9600 FileUploadOptions params not posted on iOS Documents supported params key/value type > FileUploadOptions params not posted on iOS > ------------------------------------------ > > Key: CB-9600 > URL: https://issues.apache.org/jira/browse/CB-9600 > Project: Apache Cordova > Issue Type: Bug > Components: Plugin File Transfer > Affects Versions: 3.5.0, 3.7.0 > Environment: iPhone - iOS 8.4.1 > Reporter: TipsTrade > Assignee: jcesarmobile > > Using an app built using build.phonegap.com I'm finding that the > FileUploadOptions.params values aren't being posted - iOS (8.4.1) only posts > the file multipart data. This isn't a server side error as I've watched the > POST using tcpdump/Wireshark and netcat. > * PhoneGap v.3.7.0 > * Ionic Framework v.1.0.1 > * AngularJS v.1.3.13 > This is the code that is used to upload a test file. It generates a temporary > file and attempts to upload it. > {code:javascript} > $scope.doUploadTest = function() { > var q = $q.defer(); > var promise = q.promise; > var text = "Test file content: " + new Date(); > $window.requestFileSystem(LocalFileSystem.TEMPORARY, text.length, > function(fs) { > q.resolve(fs); > }, function(err) { > q.reject(err); > }); > promise > .then(function(fs) { > var qFile = $q.defer(); > fs.root.getFile("upload.tmp", {create: true, exclusive: false}, > function(entry) { > qFile.resolve(entry); > }, function(err) { > qFile.reject(err); > }); > return qFile.promise; > }) > .then(function(entry) { > console.log("got file: " + entry.nativeURL); > var qWriter = $q.defer(); > entry.createWriter(function(writer) { > qWriter.resolve({writer: writer, entry: entry}); > }, function(err) { > qWriter.reject(err); > }); > return qWriter.promise; > }) > .then(function(response) { > var qWrite = $q.defer(); > response.writer.onwriteend = function(evt) { > qWrite.resolve(response.entry); > }; > response.writer.write(text); > return qWrite.promise; > }) > .then(function(entry) { > $scope.error = entry; > var qUpload = $q.defer(); > var options = new FileUploadOptions(); > options.params = { > Value: { > list: [1, 2, 3], > text: "foo bar baz", > number: 1234 > } > }; > options.fileKey = "thefile"; > options.fileName = entry.name; > options.mimeType = "text/plain"; > options.chunkedMode = false; > options.headers = { > "X-Upload": (new Date()).toString() > }; > var ft = new FileTransfer(); > ft.upload(entry.nativeURL, "http://192.168.0.30:9100/", > function(success) { > entry.remove(); > qUpload.resolve(success); > }, function(err) { > entry.remove(); > qUpload.reject(err); > }, options); > // Abort after 3 seconds > $timeout(function() { > console.log("Aborting upload - timed out"); > ft.abort(); > }, 3000); > return qUpload.promise; > }) > .then(function(response) { > console.log("Upload succeeded"); > $scope.error = response; > }) > .catch(function(err) { > console.log("Upload failed"); > $scope.error = err; > }); > ; > }; > {code} > The request made by an iPhone 6 (iOS v.8.4.1) is as follows: > {noformat} > POST / HTTP/1.1 > Host: 192.168.0.30:9100 > Content-Type: multipart/form-data; > boundary=+++++org.apache.cordova.formBoundary > Accept-Encoding: gzip, deflate > X-Upload: Tue Sep 01 2015 12:12:49 GMT+0100 (BST) > Connection: keep-alive > Accept: */* > User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 8_4_1 like Mac OS X) > AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12H321 (5348809648) > Content-Length: 261 > Accept-Language: en-us > X-Requested-With: XMLHttpRequest > --+++++org.apache.cordova.formBoundary > Content-Disposition: form-data; name="thefile"; filename="upload.tmp" > Content-Type: text/plain > Content-Length: 58 > Test file content: Tue Sep 01 2015 12:12:49 GMT+0100 (BST) > --+++++org.apache.cordova.formBoundary-- > {noformat} > On a Motorola Moto X (2nd gen, Android 5.1) the request is this: > {noformat} > POST / HTTP/1.1 > Content-Type: multipart/form-data; boundary=+++++ > X-Upload: Tue Sep 01 2015 12:52:24 GMT+0100 (BST) > User-Agent: Dalvik/2.1.0 (Linux; U; Android 5.1; XT1092 > Build/LPE23.32-25.1) > Host: 192.168.0.30:9100 > Connection: Keep-Alive > Accept-Encoding: gzip > Content-Length: 289 > --+++++ > Content-Disposition: form-data; name="Value" > {"list":[1,2,3],"text":"foo bar baz","number":1234} > --+++++ > Content-Disposition: form-data; name="thefile"; filename="upload.tmp" > Content-Type: text/plain > Test file content: Tue Sep 01 2015 12:52:23 GMT+0100 (BST) > --+++++-- > {noformat} -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@cordova.apache.org For additional commands, e-mail: issues-h...@cordova.apache.org