版权声明:如要转载,请注明出处 https://blog.csdn.net/qq_36480491/article/details/85001590
对于很多开发者来说,特别是学生党来说,找一个不要钱的对象存储再好不过了,下面给大家推荐bmob给大家,官方网站https://www.bmob.cn/,他提供存储少量是免费的,对于开发者来说足够了
一、首先是导入
<dependencies>
<dependency>
<groupId>com.github.bmob</groupId>
<artifactId>javasdk</artifactId>
<version>1.0.1-rc1</version>
</dependency>
<dependency>
<groupId>com.squareup.retrofit2</groupId>
<artifactId>retrofit</artifactId>
<version>2.5.0</version>
</dependency>
<dependency>
<groupId>com.squareup.retrofit2</groupId>
<artifactId>converter-gson</artifactId>
<version>2.5.0</version>
</dependency>
<dependency>
<groupId>com.squareup.retrofit2</groupId>
<artifactId>adapter-rxjava</artifactId>
<version>2.5.0</version>
</dependency>
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>logging-interceptor</artifactId>
<version>3.12.0</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
</dependencies>
二、后台代码
@RequestMapping(value = "/doUpload", method = RequestMethod.POST)
public void doUploadFile(@RequestParam("file") MultipartFile file) {
File f = null;
if (file.equals("") || file.getSize() <= 0) {
file = null;
} else {
InputStream ins = null;
try {
ins = file.getInputStream();
} catch (IOException e) {
e.printStackTrace();
}
f = new File(file.getOriginalFilename());
inputStreamToFile(ins, f);
}
uploadFile(f);
}
/**
* MultipartFile转file
* @param ins InputStream
* @param file File
*/
private void inputStreamToFile(InputStream ins, File file) {
try {
OutputStream os = new FileOutputStream(file);
int bytesRead = 0;
byte[] buffer = new byte[8192];
while ((bytesRead = ins.read(buffer, 0, 8192)) != -1) {
os.write(buffer, 0, bytesRead);
}
os.close();
ins.close();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 上传图片返回URL
* @param file File
*/
private static void uploadFile(File file) {
Bmob.getInstance().init("id", "key");//bmob上申请的
final BmobFile bmobFile = new BmobFile(file);
bmobFile.uploadFile(new UploadListener() {
@Override
public void onSuccess() {
System.out.println(bmobFile.getCdnName() + "-" + bmobFile.getFilename() + "-" + bmobFile.getUrl());
}
@Override
public void onFailure(BmobException ex) {
System.err.println(ex.getMessage());
}
});
}
三,前端代码
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
<form method="post" action="/doUpload" enctype="multipart/form-data">
<input type="file" name="file"/>
<button type="submit" >提交</button>
</form>
</body>
</html>
四、总结
这样就完成了图片上传,然后bmob那边返回图片URL,开发者就可以对URL做出相应的处理了,是不是很简单啊