上传图片从PhoneGap的应用科尔多瓦 [英] Uploading Picture From PhoneGap Cordova App

查看:147
本文介绍了上传图片从PhoneGap的应用科尔多瓦的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

试图让相片上传但文件数据不能获得到服务器。该应用程序带来了相机,并做了POST到服务器,但也从未上传过任何文件。

Trying to get photo to upload but can't get the file data to the server. The app brings up the camera and does a POST to the server but there is never any file uploaded.

我创建我可以测试这个最简单的应用程序在的https:/ /github.com/dustinb/Camera/blob/master/index.html 。当上载情况,只有452发送到服务器的字节

I've created the simplest app I could to test this at https://github.com/dustinb/Camera/blob/master/index.html. When the upload happens there is only 452 bytes sent to the server.

73.3.252.133 - - [04/Dec/2014:23:55:11 +0000] "POST /upload HTTP/1.1" 200 452 "-" "Dalvik/1.4.0 (Linux; U; Android 2.3.4; ADR6400L Build/GRJ22)"

我看这方面的一个例子不胜枚举,不能看到什么比我有什么不同。我使用build.phonegap.com编译和安装

I've looked a numerous examples of this and can't see anything different than what I have. I'm using build.phonegap.com to build and install

编辑:使用tcpdump的,我可以看到的数据越来越向服务器只是没有在$ _ POST或$ _FILES变量是在PHP

Using tcpdump I can see the data is getting to the server just nothing in $_POST or $_FILES variables in PHP

    0x0030:  150c 34c5 504f 5354 202f 7570 6c6f 6164  ..4.POST./upload
    0x0040:  2048 5454 502f 312e 310d 0a43 6f6e 7465  .HTTP/1.1..Conte
    0x0050:  6e74 2d54 7970 653a 206d 756c 7469 7061  nt-Type:.multipa
    0x0060:  7274 2f66 6f72 6d2d 6461 7461 3b20 626f  rt/form-data;.bo
    0x0070:  756e 6461 7279 3d2b 2b2b 2b2b 0d0a 5573  undary=+++++..Us
    0x0080:  6572 2d41 6765 6e74 3a20 4461 6c76 696b  er-Agent:.Dalvik
    0x0090:  2f31 2e34 2e30 2028 4c69 6e75 783b 2055  /1.4.0.(Linux;.U
    0x00a0:  3b20 416e 6472 6f69 6420 322e 332e 343b  ;.Android.2.3.4;
    0x00b0:  2041 4452 3634 3030 4c20 4275 696c 642f  .ADR6400L.Build/
    0x00c0:  4752 4a32 3229 0d0a 486f 7374 3a20 7371  GRJ22)..Host:.sq
    0x00d0:  7561 7265 732e 726f 756e 6470 6f72 6368  uares.roundporch
    0x00e0:  2e63 6f6d 0d0a 436f 6e6e 6563 7469 6f6e  .com..Connection
    0x00f0:  3a20 4b65 6570 2d41 6c69 7665 0d0a 4163  :.Keep-Alive..Ac
    0x0100:  6365 7074 2d45 6e63 6f64 696e 673a 2067  cept-Encoding:.g
    0x0110:  7a69 700d 0a43 6f6e 7465 6e74 2d4c 656e  zip..Content-Len
    0x0120:  6774 683a 2032 3933 3530 0d0a 0d0a       gth:.29350....
    -- next packet --
    0x0000:  4500 05dc 617d 4000 3206 a8e9 4903 fc85  E...a}@.2...I...
    0x0010:  68cf 8a5d d68c 0050 aa2b ce30 13d2 95d7  h..]...P.+.0....
    0x0020:  8010 02da 80ec 0000 0101 080a 01be ac57  ...............W
    0x0030:  150c 34c5 ffd8 ffe1 0116 4578 6966 0000  ..4.......Exif..
    0x0040:  4949 2a00 0800 0000 0e00 3201 0200 1400  II*.......2.....

看来问题是内容处置和其他头的MIME边界没有被发送。在转储可以看到后发送内容长度的JPEG数据被立即使用无MIME分界线发送下一个。

Seems the problem is the mime boundary with Content-Disposition and other headers is not being sent. Can see in the dump after Content-Length is sent the JPEG data is immediately sent next with no mime boundary used.

推荐答案

这个问题用错了文件传输的插件。不知道在那里我找到了其他插件或为什么它被使用,但不工作

The problem was using the wrong File Transfer plugin. Not sure where I found the other plugin or why it was used but doesn't work

-    <gap:plugin name="com.chanthu.evri.gcs-file-transfer" version="1.0.0" />
+    <gap:plugin name="org.apache.cordova.file-trasfer" />

这篇关于上传图片从PhoneGap的应用科尔多瓦的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆