-
Notifications
You must be signed in to change notification settings - Fork 6
如何上传文件到OSS
张弓 edited this page Feb 19, 2021
·
1 revision
上传文件到OSS范例:
<form id="form1" name="form1" enctype="multipart/form-data" method="post" action="FrmProductImage.upImage">
<input type="hidden" name="partCode" value="${param.partCode}" />
<div>
选择图片-电脑图(pc):
<input type="file" name="pcFile" id="file1">
<div>
</div>
选择图片-手机图(phone):
<input type="file" name="phoneFile" id="file2">
<div>
</div>
选择图片-其它图:
<input type="file" name="otherFile" id="file3">
</div>
<div style="padding-top:2em;">
<button name="uploadImg" value="submit">确认上传</button>
</div>
</form>
public IPage upImage(){
String partCode = getRequest().getParameter("partCode");
// 处理文件上传
DiskFileItemFactory factory = new DiskFileItemFactory();
// 设置最大缓存
factory.setSizeThreshold(5 * 1024);
ServletFileUpload upload = new ServletFileUpload(factory);
// 获取所有文件列表
List<FileItem> uploadFiles = upload.parseRequest(getRequest());
OssSession oss = (OssSession) this.getHandle().getProperty(OssSession.sessionId);
// 取出上传的每一个文件
for (int i = 0; i < uploadFiles.size(); i++) {
FileItem fileItem = uploadFiles.get(i);
if (!fileItem.isFormField()) {// 文件名
if (fileItem.getSize() > 0) {
String fileName = fileItem.getName().toLowerCase();
if (fileName.endsWith(".jpg")) {
if (fileItem.getFieldName().equals("pcFile"))
fileName = "product-pc.jpg";
else if (fileItem.getFieldName().equals("phoneFile"))
fileName = "product-phone.jpg";
log.info("接收并保存文件:" + fileName);
oss.upload(this.getCorpNo() + "/sample/" + fileName, fileItem.getInputStream());
} else {
throw new RuntimeException("上传失败,请确认上传的文件存在并且类型是图片!");
}
}
} else {
// 非文件流
if ("partCode".equals(fileItem.getFieldName()))
partCode = new String(fileItem.getString().getBytes("ISO-8859-1"), "UTF-8");
}
}
JspPage jspChildPage = new JspPage(this);
jspChildPage.add("partCode", partCode);
return new RedirectPage(this, "FrmProductImage.listImages?partCode=" + partCode);
}
summer-footer
summer-db