我在 GAE 上有一个应用程序:http: //1.myawesomecity.appspot.com/
如您所见,如果您选择一个文件并点击提交,它将 404,但该文件实际上确实被存储(只要它不是太大,< 100kb)。不要在第一个文本字段中输入任何内容。
该文件的帖子名称是“myFile”。
我现在正在尝试使用 httppost 从 Android 应用程序上传文件。
用户选择一个文件,我得到它的目录,并将 myFile 的 namevaluepair 设置为文件目录。然后我执行 httpconnection,但文件没有上传。
所以我的问题是..有什么区别
在浏览器上,单击“选择文件”,然后选择一个文件与将名称值对中的 myFile 分配给文件的目录
和
单击“提交”开始上传与运行 httpconnection.execute(httppost)?
如果没有差异,则应上传文件。该文件没有被上传,所以我相信知道两个进程(浏览器与 httppost)之间的差异应该可以揭示文件没有被上传的原因。
我确定以下几点:我的文件目录是正确的。服务器本身(尽管几乎没有功能)允许通过浏览器上传,无论是从我的 PC 浏览器、Android 模拟器的浏览器,还是从实际的 Android 机器的浏览器。Android 应用程序的 httpconnection 正在通过(执行 httpconnection 时不会引发异常)。
仅供参考,服务器正在使用 GAE 的 blobstore。
安卓代码:
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(url); //url is the app's site listed above
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("myFile", filename) ); //filename is the file's path
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
httpclient.execute(httppost);