我们在进行一些web开发时,有时会需要上传文件,图片等等的功能。这篇文章记录一下我实现用ajax实现无刷新上传图片的方法。
我们先要了解一下ajax,在前后端分离的开发环境中ajax被广泛的用原来前后端的数据交互,但是ajax有一个弊端就是只能传输json格式的文件,所以我们用ajax来实现文件上传时会无法把文件信息完整的传给后台,所以为了实现无刷新上传,需要一个js的插件,他提供了关于ajax form上传的很多方法。这就是jquery.form.js
下面就是关键实现代码。
html

<script type="text/javascript" src="js/jquery.form.js"></script>//引入jquery.form.js
//ajxa
<script type="text/javascript">function fileupload() {$("#fileform").ajaxSubmit(                 //fileform为Form的idfunction(data) {     //data后台返回的数据$("#upload-img").attr(     "src","http://127.0.0.1:8080/qrcode/upload/"+ data);}});
</script>
//表单
<div ><img border="0" id="upload-img" src="data:images/default_head_image.png"alt="" width="90" height="90"></img><form action="ImgUpload" method="post" enctype="multipart/form-data"id="fileform"><div class="upload pointer" id="upload-btn"><div class="uploadClick">上传</div><input type="file" id="file" class="uploadfile" name="fileName"onchange="fileupload()" style="margin-left: -39.5px;" /></div></form>
</div>

java后台

import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URLDecoder;
import java.util.List;
import java.util.UUID;import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;public class ImgUpload extends HttpServlet {protected void service(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {req.setCharacterEncoding("utf-8");resp.setContentType("text/html;charset=utf-8");DiskFileItemFactory factory = new DiskFileItemFactory();ServletFileUpload sfu = new ServletFileUpload(factory);sfu.setFileSizeMax(1024 * 1080);String fileName = "";String path = "";try {List<FileItem> items = sfu.parseRequest(req);System.out.println(items.size());for (int i = 0; i < items.size(); i++) {FileItem item = items.get(i);if (!item.isFormField()) {ServletContext sctx = getServletContext();path = sctx.getRealPath("/upload");System.out.println(path);fileName = UUID.randomUUID() + ".png";;System.out.println(fileName);fileName = fileName.substring(fileName.lastIndexOf("/") + 1);File file = new File(path + "\\" + fileName);if (!file.exists()) {item.write(file);}}}} catch (Exception e) {e.printStackTrace();}resp.getWriter().print(fileName);}}

第一次写博客,写的不太好请大家多多指教。

ajax上传文件表单,图片、文件无刷新上传,jquery.form.js的使用相关推荐

  1. Android之解决PC端上传http表单格式文件手机解析文件名乱码问题和PC浏览器下载文件的文件名显示乱码问题

    1 问题 问题1. 手机写socket作为服务器,PC浏览器上传http表单格式文件,然后手机端解析携带中文的文件名我解析是乱码. 问题2. 手机写了socket作为服务器,PC浏览器下载文件,但是浏 ...

  2. html中只能上传文件word,HTML文件表单,接受Word文档(HTML file form, accept Word documents)...

    HTML文件表单,接受Word文档(HTML file form, accept Word documents) 我在这里遇到了一个奇怪的问题. (不管怎样,或者我只是忽略了一些非常简单的东西.) 我 ...

  3. ajax提交form表单到数据库(无刷新)

    在静态页面提交表单到数据库很简单就是单纯的 <form action="test.php" method="post"> </form> ...

  4. php页面上必须有表单,php – 在同一页面上显示提交的表单响应. (没有重装)

    这是使用 suggested example from the JQuery site和 pajaja's答案的工作示例. 解: 将其放在< head>中.你的网页. < scrip ...

  5. php 无刷新上传,php 无刷新上传文件的代码

    php 无刷新上传文件. 有兴趣的朋友,可以参考下:php iframe无刷新上传文件的实现代码 . 1.上传页面 复制代码 代码示例: 无刷新上传文件 function startUpload() ...

  6. 利用jquery.form.js实现Ajax无刷新图片上传及预览功能

    某些时候当我们做登记页面的时候可能需要上传图片,并实现即时预览的功能. 如果只是预览而不上传,可以使用ImagePreview来实现,方便简单.如果需要上传,那么你也可以使用uploadify无刷新上 ...

  7. ASP.NET工作笔记之一:图片上传预览及无刷新上传

    转自:http://www.cnblogs.com/sibiyellow/archive/2012/04/27/jqueryformjs.html 最近项目里面涉及到无刷新上传图片的功能,其实也就是上 ...

  8. ajax 表单提交传文件,Ajax提交Form表单及文件上传

    刚刚申请下来的博客,写得第一篇.有点小激动,本人以前是一名工业3D设计师突然有些变故做上了JavaWeb开发: 前几天,发现了一些小问题.我在写后台管理页面时,需要上传一张图片.于是我就用很普通的Fo ...

  9. AJAX 提交表单以及文件上传

    本文转自:https://www.cnblogs.com/zhuxiaojie/p/4783939.html#autoid-0-0-0 作者:朱小杰 前言 使用ajax请求数据,很多人都会,比如说: ...

最新文章

  1. 美国劳工统计局使用机器学习自动执行数据编码
  2. Oracle Weblogic 11g(10.3.4)的小知识
  3. 前端学习(2787):完成推荐商品结构之商品栏样式书写
  4. vm虚拟机安装包_一次Miniconda虚拟机安装的神奇踩坑记录
  5. Stream中toMap引发NullPointerException____Stream的执行流程
  6. telerik:RadTreeView树形菜单鼠标放上去展开菜单
  7. 阿里云物联网平台 > 设备接入 > 使用开放协议自主接入 > CoAP协议接入 >
  8. 在线office编辑 iWebOffice系列的交互操作
  9. PHP+mysql共享自行车租赁管理系统
  10. latex引用文献,带DOI
  11. matlab波形转换,matlab波形图怎么转换为矢量图并导出?
  12. 华为al00的计算机在哪,(详细)华为畅享8 LDN-AL00的USB调试模式在哪里开启的流程...
  13. 一次计算机社团活动方案,社团活动方案设计方案5篇
  14. P6857 梦中梦与不再有梦
  15. 【MidJourney】初体验——账号注册与基本操作
  16. 一笔画问题中用奇点判断是否可以一笔完成
  17. Spring IoC注入三种方式
  18. Redis 存储List对象
  19. canvas图片画圆角
  20. 从实际出发,改变自己。

热门文章

  1. Android 图片异步加载的体会,SoftReference已经不再适用
  2. Linux系统中增加Swap分区大小
  3. 如何pspice模型转成saber模型
  4. [Vue.js] 基础 -- Vue实例
  5. 用css3制作一个Music Player Menu
  6. php清空dns缓存文件,怎么清除DNS缓存
  7. 6-2 删除单链表偶数节点 (10 分)
  8. 统计学硕士考计算机博士,统计学国家重点学科博士点硕士点最全博研堂考研究生.pdf...
  9. twitter finagle java_java搭建finagle(2)
  10. Android 视频图片 轮播,详解android 视频图片混合轮播实现