您好我试图使用
PHP将文件从我的
Android应用程序上传到我的服务器.
我看过这篇文章:
How to upload a file using Java HttpClient library working with PHP
http://www.veereshr.com/Java/Upload
How do I send a file in Android from a mobile device to server using http?
这是我的JAVA代码:
public void upload() throws Exception { File file = new File("data/data/com.tigo/databases/exercise"); Log.i("file.getName()",file.getName()); HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost("http://***.***.***.***/backDatabase.PHP"); InputStreamEntity reqEntity = new InputStreamEntity( new FileInputStream(file),-1); reqEntity.setContentType("binary/octet-stream"); reqEntity.setChunked(true); httppost.setEntity(reqEntity); HttpResponse response = httpclient.execute(httppost); if((response.getStatusLine().toString()).equals("HTTP/1.1 200 OK")){ // Successfully Uploaded Log.i("uploaded",response.getStatusLine().toString()); } else{ // Did not upload. Add your logic here. Maybe you want to retry. Log.i(" not uploaded",response.getStatusLine().toString()); } httpclient.getConnectionManager().shutdown(); }
<?PHP $uploads_dir = '/tigo/databaseBackup'; if (is_uploaded_file($_FILES['exercise']['tmp_name'])) { $info = "File ". $_FILES['exercise']['name'] ." uploaded successfully.\n"; $file = 'emailTest.log'; file_put_contents($file,$info,FILE_APPEND | LOCK_EX); move_uploaded_file ($_FILES['exercise'] ['tmp_name'],$_FILES['exercise'] ['name']); } else { $info = "Possible file upload attack: "; $file = 'emailTest.log'; file_put_contents($file,FILE_APPEND | LOCK_EX); $info = "filename '". $_FILES['exercise']['tmp_name'] . "'."; file_put_contents($file,FILE_APPEND | LOCK_EX); print_r($_FILES); } ?>
在我的logcat中,我得到HTTP / 1.1 200 OK.
当我查看服务器日志时,我收到此错误:
PHP Notice: Undefined index: exercise in /var/www/backDatabase.PHP on line 23
我也试过用:
$_FILES['userfile']['name']
代替
$_FILES['exercise']['tmp_name']
我在服务器日志中遇到了同样的错误.
谢谢你的帮助.
尝试多部分实体
public void upload(String filepath) throws IOException { HttpClient httpclient = new DefaultHttpClient(); httpclient.getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION,HttpVersion.HTTP_1_1); HttpPost httppost = new HttpPost("url"); File file = new File(filepath); multipartentity mpEntity = new multipartentity(); ContentBody cbFile = new FileBody(file,"image/jpeg"); mpEntity.addPart("userfile",cbFile); httppost.setEntity(mpEntity); System.out.println("executing request " + httppost.getRequestLine()); HttpResponse response = httpclient.execute(httppost); httpentity resEntity = response.getEntity(); // check the response and do what is required }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。