Ext ajax 上传文件

本文介绍如何使用Ext.js实现文件选择、描述输入及文件上传至后台Servlet的功能,包括前端界面展示与后台Servlet接收处理上传文件的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

页面代码

<form id="upForm">
请选择文件:<input type="file" name="file1"><br /> 文件描述:
<textarea cols="70" rows="5" name="desc"></textarea>
<br /> <input type="button" id="btn" value="上传">
</form>

<script type="text/javascript">
Ext.onReady(function() {
Ext.MessageBox.alert("测试", "测试Ext是否运行");
Ext.get("btn").on("click", function() {
Ext.Ajax.request({
url : "FileUpServlet",
isUpload : true,
form : "upForm",
success : function(response) {
Ext.MessageBox.alert("上传成功", response.responseText);
}
});
});
});
</script>

后台servlet代码

public class FileUpServlet extends HttpServlet {
private static final long serialVersionUID = 1L;

public FileUpServlet() {
super();
}

@Override
public void service(ServletRequest request, ServletResponse response)
throws ServletException, IOException {

request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
ServletContext ctx = this.getServletContext();
String userFilePath = ctx.getRealPath("userFile");

DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setSizeThreshold(1024 * 1024);
factory.setRepository(new File(userFilePath));

ServletFileUpload upload = new ServletFileUpload(factory);
upload.setSizeMax(10 * 1024 * 1024);

try {

List<FileItem> fileItems = upload.parseRequest((HttpServletRequest) request);
System.out.println(fileItems.size());
Iterator<FileItem> iter = fileItems.iterator();

while (iter.hasNext()) {
FileItem fi = iter.next();

if (fi.isFormField()) {

String fieldName = fi.getFieldName();
String fieldvalue = fi.getString();

System.out.println("name:" + fieldName);
System.out.println("value:" + fieldvalue);
} else {
String filePath = fi.getName();
if (filePath != null) {
System.out.println(filePath);
}
if (StringUtil.isBlank(filePath)) {
continue;
}
String extensionName = filePath.substring(
filePath.lastIndexOf("."), filePath.length());
// String contentType = fi.getContentType();
// boolean isInMemory = fi.isInMemory();
// long sizeInBytes = fi.getSize();

String url = userFilePath +"\\"+ StringUtil.getUUID()
+ extensionName;
File uploadedFile = new File(url);
if (!uploadedFile.exists()) {
uploadedFile.getParentFile().mkdirs();
}

fi.write(uploadedFile);
}
}

PrintWriter out = response.getWriter();
out.print("创建成功");
out.flush();
out.close();

} catch (Exception e) {
e.printStackTrace();
}
}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值