common-fileupload上传图片并显示图片

效果图如下:

                                 

代码:

注意:需要jar包:commons-fileupload-1.2.1.jar  和 commons-io-1.4.jar

index.jsp

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
        <title>添加图片</title>
        <script type="text/javascript">
            //打开上传页面
            function openUpload(){
                var win = window.showModalDialog("/upload.jsp","","dialogWidth:300px;dialogHeight:200px;scroll:no;status:no");
                if(win != null){
                    document.getElementById("photo_id").value = win;
                    document.getElementById("img_id").src = "/"+win;
                }
            }
        </script>
    </head>
    <body>
        <h5>添加图片</h5><hr/>
            <p>
                上传图片:
                <label>
                    <input type="hidden" id="photo_id" name="photo" value="images/default.gif">
                    <input type="button" onclick="openUpload()" value="上传图片"/><br/>
                    <img id="img_id" alt="" src="/images/default.gif" width="200px" height="200px">
                </label>
            </p>
      </body>
</html>
upload.jsp
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=GBK">
        <meta http-equiv="pragma" content="no-cache" />
        <span style="color: #ff0000;"><base target="_self"></span>
        <title>图片上传</title>
    </head>
    <body>
        <h5>图片上传</h5><hr/>
        <p style="color: red">${requestScope.errorMsg}</p>
        <form id="form1" name="form1" action="/servlet/Upload" method="post" enctype="multipart/form-data">
            <div>注:图片大小最大不能超过3M!</div>
            <div>
                <input type="file" name="file_upload"/>
                <input type="submit" value="上传"/>
            </div>
        </form>
    </body>
</html>
Upload.java 中的主要代码:
public class Upload extends HttpServlet {

    private String uploadPath = "aa/upload/"; // 上传文件的目录
    private String tempPath = "aa/uploadtmp/"; // 临时文件目录
    private String serverPath = null;

    private int sizeMax = 3;//图片最大上限
    private String[] fileType = new String[]{".jpg",".gif",".bmp",".png",".jpeg",".ico"};

    public void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html");
        response.setCharacterEncoding("utf-8"); //设置编码,方式返回的中文乱码

        serverPath = getServletContext().getRealPath("/").replace("\\", "/");
        //Servlet初始化时执行,如果上传文件目录不存在则自动创建
        if(!new File(serverPath+uploadPath).isDirectory()){
            new File(serverPath+uploadPath).mkdirs();
        }
        if(!new File(serverPath+tempPath).isDirectory()){
            new File(serverPath+tempPath).mkdirs();
        }

        DiskFileItemFactory factory = new DiskFileItemFactory();
        factory.setSizeThreshold(5*1024); //最大缓存
        factory.setRepository(new File(serverPath+tempPath));//临时文件目录

        ServletFileUpload upload = new ServletFileUpload(factory);
        upload.setSizeMax(sizeMax*1024*1024);//文件最大上限

        String filePath = null;
        try {
            List<FileItem> items = upload.parseRequest(request);//获取所有文件列表
            for (FileItem item : items) {
                //获得文件名,这个文件名包括路径
                if(!item.isFormField()){
                    //文件名
                    String fileName = item.getName().toLowerCase();

                    if(fileName.endsWith(fileType[0])||fileName.endsWith(fileType[1])||fileName.endsWith(fileType[2])||fileName.endsWith(fileType[3])||fileName.endsWith(fileType[4])||fileName.endsWith(fileType[5])){
                        String uuid = UUID.randomUUID().toString();
                        filePath = serverPath+uploadPath+uuid+fileName.substring(fileName.lastIndexOf("."));
                        item.write(new File(filePath));
                        PrintWriter pw = response.getWriter();
                        pw.write("<script>alert(‘上传成功‘);window.returnValue=‘"+uploadPath+uuid+fileName.substring(fileName.lastIndexOf("."))+"‘;window.close();</script>");
                        pw.flush();
                        pw.close();
                    }else{
                        request.setAttribute("errorMsg", "上传失败,请确认上传的文件存在并且类型是图片!");
                        request.getRequestDispatcher("/upload.jsp").forward(request,response);
                    }
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
            request.setAttribute("errorMsg", "上传失败,请确认上传的文件大小不能超过"+sizeMax+"M");
            request.getRequestDispatcher("/upload.jsp").forward(request,response);
        }
    }

}
 <p style="color: red">${requestScope.errorMsg}</p>

表示变量的作用域,一共4种。

pageScope: 表示变量只能在本页面使用。

requestScope:表示变量能在本次请求中使用。

sessionScope:表示变量能在本次会话中使用。

applicationScope:表示变量能在整个应用程序中使用。

时间: 2024-11-13 07:55:26

common-fileupload上传图片并显示图片的相关文章

springmvc上传图片并显示图片--支持多图片上传

实现上传图片功能在Springmvc中很好实现.现在我将会展现完整例子. 开始需要在pom.xml加入几个jar,分别是: [java] view plain copy <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version> </dep

jquery html5 file 上传图片显示图片

最近做了一个小例子,在上传用户图像时,如何在上传图片时显示图片.在网上找了很多资料也未能如愿,如是,就用jquery ,html5,实现了,由于开发是在linux 所以未能在ie下测试,在forefox,chrom下是可以的. 一.html下的代码是: <div class=' input_box' > <span class='spac' >头</span>相:<input class="input_style" id="'head

02-20 winform 上传图片并读取图片

建立一个windows窗体应用程序,在form1界面中拖入两个按钮和一个pictureBox,通过输入输出流来上传图片和显示图片.需要添加一下openFileDialog1. 界面如下: 在cs中写上传和显示图片的方法 1 //上传图片 2 private void button1_Click(object sender, EventArgs e) 3 { 4 //图片的转化 5 openFileDialog1.Filter = "*jpg|*.jpg|*bmp|*.bmp|*gif|*.gif

Java web项目从eclipse上移动到tomact服务器上,之路径更改,包括显示图片和导出excel

//项目做完之后,在本机电脑运行完全正常,上传图片,显示图片,导出excel,读取excel等功能,没有任何问题,但是,当打成war包放到服务器上时,这些功能全部不能正常使用. 最大的原因就是,本机测试跟服务器上的路径发生了变化. 记录一下,上传图片和显示图片的代码 1.前端页面: <form action="${pageContext.request.contextPath}/UploadWeiXiuServlet" enctype="multipart/form-d

C#中使用FileUpload上传图片到SQL数据库中以image类型存储并使用Image控件显示注意事项

当我们需要以数据流存储图片到数据库中(而不是文件路径),需要考虑很多因素,不同的环境决定了采取不同方法. 1.将图片存入数据库.首先,当我们决定使用FileUpload上传图片,需要考虑,FileUpload的功能主要是在客户端选取图片,然后使用FileUpload的SaveAs方法将选取的图片的地址保存到服务器端保存,因为我们使用的数据流存储图片,所以没有必要将图片保存到服务器端. 其次,FileUpload没有像OpenDialog的.Filter方法过滤图片的格式,即实现打开对话框,只能选

关于百度world 编辑器改变上传图片的保存路径图片不显示的问题

在ueditor.mini for asp.net 中,将上传的图片保存的路径更改了,可图片在 world 编辑器中不显示,但却可以上传到指定的保存目录下,解决这个问题的方法 是: 在udditor_mini--->third-party---->umeditor.config.js中, 也就是 ueditor 的配置文件(js文件 ) 中, 找到  window.UMEDITOR_CONFIG  这个配置, 就在 配置中的首部,将 imgUrl 和 imgPath 设置的目录前部分要一致,这

在数据库中 存储图片 以及 在界面中显示图片(存储图片路径)- 这种方法相对与存储二进制文件好

花了一下午时间,终于学会了在数据库中存储图片,以及在界面中显示图片了. 存储图片有两种方法: 一种是:直接把图片转换成二进制文件存储在数据库中. 一种是:存储图片的路径到数据库,用的时候直接调用路径给image等图像控件即可. 两种方法,有利有弊,第一种方法适合存储量少且重要的图片信息.第二种方法适合存储量大但不是太重要的图片. 我使用的是第二种方法,简单,实用. 下面就是我具体的实现过程: 首先我新建了两个网页文件,insert_photo.aspx / select_photo.apsx 第

Django上传并显示图片

Django上传并显示图片 非常详细的教程,教大家一步步用Django上传与显示图片.用例子学习是一个不错的方法,下面我用一个非常简单的例子为大家讲解Django中图片的上传与显示. 1. 创建名称为'a'的项目 1 $django-admin startproject a 2.在项目'a'中创建名为'b'的app 12 $cd a$python manage.py startapp b 3.把b加入到settings.py中的INSTALLED_APPS中 123456789 INSTALLE

应用键横竖屏切换;label中显示图片;不同类型设备适配的代码;UIWebView字体大小、字体颜色、背景色的设置;

最近总结的工作中遇到的小问题在这里共享 ,希望对大家能有帮助 1.横屏的一个应用在修改个人资料过程从相册取图片或者拍照的过程中,横纵屏切换引起再次进入程序时应用变纵屏的bug --------------主页面控制器中点击进入个人资料页面的地方:---------------------- - (void)changepersonIcon{ UIActionSheet*actionSheet = [[UIActionSheetalloc] initWithTitle:@"选择封面图片"