我需要将一个非常小的 .xml 文件上传到 php 脚本。该脚本将解析文件,在地图上创建一些东西,然后应用程序将显示结果。
问题是,如果我必须上传带有 html 页面的文件,我创建一个表单,输入一个带有“name=userfile”的输入字段,然后服务器端我在 $_FILES['userfile'] 中找到它。
如何在安卓中做到这一点?with string 很简单 with
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add("key", "value");
但现在?
这是我的代码客户端,但似乎没有文件到达服务器:
final String url = "http://www.blablabladasdasd/mysite/test.php";
String selected = getIntent().getStringExtra("com.example.ghghgh.filename");
final File file = new File("/storage/sdcard0/myFolder/"+selected + ".xml");
Log.i("FILE SIZE: ", "" + file.length());
final WebView mWebView = (WebView) findViewById(R.id.webview);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
mWebView.getSettings().setSaveFormData(true);
mWebView.setWebViewClient(new MyWebViewClient());
Thread thread = new Thread()
{
public void run()
{
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost(url);
client.getParams().setParameter("userfile", file);
try
{
HttpResponse response = client.execute(post);
String res = EntityUtils.toString(response.getEntity());
Log.i("RESPONSE: ", res);
mWebView.loadData(res, "text/html", HTTP.UTF_8);
}
catch(ClientProtocolException e)
{
e.printStackTrace();
}
catch(IOException e)
{
e.printStackTrace();
}
}
};
thread.start();
try
{
thread.join();
}
catch(InterruptedException e)
{
e.printStackTrace();
}