精华内容
下载资源
问答
  • Javaweb上传图片途径到数据库

    千次阅读 多人点赞 2018-11-11 20:17:19
    Javaweb上传图片途径到数据库 结果如下 首先建立数据库存放上传图片路径数据库属性用varchar(),大小差不多设置为 255。 数据库连接在这里就不多说了 jsp页面 <body> <form action=&...

    Javaweb上传图片途径到数据库

    结果如下

    首先建立数据库存放上传图片路径数据库属性用varchar(),大小差不多设置为 255。

    数据库连接在这里就不多说了

    jsp页面

    <body>
    	<form action="${pageContext.request.contextPath}/uppicture" method="post"  enctype="multipart/form-data" >
    	 昵称:<input type="text" name="name"><br>
                <div>
                 	 <img src="${image_path}" width="200" height="200">
                 </div>
                  头像:<input type="file" name="uploadFile"> 
            <input type="submit" value="上传头像"/>
       </form>

    Dao.java添加到数据库add方法

    package com.picture.dao;
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
    import com.imooc.db.DButil;
    import com.picture.Bean.Picture;
    public class Dao {
    	private Connection conn;
    	private PreparedStatement ps;
    	public void add(Picture picture){
    		
            try {
            	conn=DButil.getConnection();
                String sql="insert into picture_2(name,picturepath)"+" values (?,?)" ;
    			ps=conn.prepareStatement(sql);
    			ps.setString(1,picture.getName());
    			ps.setString(2,picture.getPicturepath());
    			  ps.execute();
    		} catch (SQLException e) {
    			e.printStackTrace();
    		}
          
    	}
    	
    }
    

    upServlet.java,Servlet文件处理数据

    package com.picture.servlet;
    import com.picture.Bean.Picture;
    import com.picture.dao.Dao;
    
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.util.Calendar;
    import java.util.List;
    
    import javax.servlet.ServletException;
    import javax.servlet.ServletInputStream;
    import javax.servlet.annotation.WebServlet;
    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.FileUploadException;
    import org.apache.commons.fileupload.disk.DiskFileItemFactory;
    import org.apache.commons.fileupload.servlet.ServletFileUpload;
    
    /**
     * Servlet implementation class upServlet
     */
    //@WebServlet("/upServlet")
    public class upServlet extends HttpServlet {
    	private static final long serialVersionUID = 1L;
        
        
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		
    	}
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		//通知客户端以utf-8编码进行解析
    		       
    				response.setContentType("text/html;charset=utf-8");
    				//数据库以UTF-8编码解析数据
    				request.setCharacterEncoding("UTF-8");
    				
    				String name=null;
    			
    			    Picture picture=new Picture();
    			    Dao dao=new Dao();
    				//判断请求是否为multipar请求
    				if(!ServletFileUpload.isMultipartContent(request))
    				{
    					throw new RuntimeException("当前请求不支持文件上传");
    				}
    				//为基于磁盘的文件项创建一个FileItem工厂
    				DiskFileItemFactory factory = new DiskFileItemFactory();
    				//设置临时文件的边界值,大于该值时,上传文件会先保存在临时文件中,否则,上传文件将直接写入到内存
    				//单位:字节,设置边界值1M,一字节=1024M;
    				factory.setSizeThreshold(1024*1024*1);
    				//设置文件临时储存
    				String temppath=this.getServletContext().getRealPath("/temp");
    				File temp=new File(temppath);
    				factory.setRepository(temp);
    				//创建一个新的文件上传处理程序
    				ServletFileUpload upload = new ServletFileUpload(factory);
    				//设置每一个item的头部字符编码,其可以解决文件名中文乱码问题;
    				upload.setHeaderEncoding("UTF-8");
    				//设置单个文件的最大边界值(这里是2M)
    				upload.setFileSizeMax(1024*1024*2);
    				//设置一次上传所有文件总和的最大值(对上传多个文件起作用,这里最大为5M)
    				upload.setSizeMax(1024*1024*5);
    				//解析请求,获取所有的item
    				try {
    				//
    					//调用ServletFileUpload.parseRequest方法解析request对象,
    					//得到一个保存了所有上传内容的List对象。
    				List <FileItem> items = upload.parseRequest(request);
    				//遍历
    				for(FileItem item:items){
    				//若item为普通表单项
    					if(item.isFormField()){
    					//获取表单中属性名称
    					String fieldName = item.getFieldName();
    					if(fieldName.equals("name")){
    					//获取表单属性的值
    					 name=item.getString("UTF-8");
    					}
    					System.out.println(fieldName+"="+name);
    				//若	item为文件表单项
    					}else{
    					//获取文件大小
    					long size=item.getSize();
    					//获取文件类型
    					String contentType = item.getContentType();
    					//获取上传文件原始名字
    					String fileName = item.getName();
    					System.out.println("文件大小:"+size);
    					System.out.println("文件的类型:"+contentType);
    					//System.out.println("文件的名称:"+fileName);
    				    //获取文件名,处理获取到的上传文件的文件名的路径部分,只保留文件名部分
    					if(fileName.contains("\\"))
    		            {
    		                //如果包含则截取字符串
    						fileName=fileName.substring(fileName.lastIndexOf("\\")+1);
    		            }
    					//设置文件名,因为同名的文件会覆盖,所以要修饰文件名,设置毫秒+文件名
    					fileName=System.currentTimeMillis()+fileName;
    					System.out.println("文件的名称:"+fileName);
    					//获取输入流,其实有上传文件的内容
    					InputStream inputStream = item.getInputStream();
    					
    					//String parent=this.getServletContext().getRealPath("./images");
    					String path="E:\\picture-up";
    					File dirFile=new File(path);
    					if(!dirFile.exists()){
    						//创建多级目录mkdirs()
    						dirFile.mkdir();
    					}
    					//创建目录文件,将来用于保存上传文件
    					File file = new File(path, fileName);
    					//创建文件输出流
    					OutputStream os=new FileOutputStream(file);	
    					//把输入流中的数据写入到输出流
    					int len=0;
    					byte[] buf=new byte[1024];
    					while((len=inputStream.read(buf))!=-1){
    						os.write(buf, 0, len);
    					}
                       //图片上传到之后的路径
    					path="E:\\picture-up"+"\\"+fileName;
    					picture.setName(name);
    					picture.setPicturepath(path);
    					System.out.println(picture.getName()+"----"+picture.getPicturepath());
                       //调用Dao中的add()方法
    					dao.add(picture);
    					os.close();
    					inputStream.close();
    					//删除临时文件
    					item.delete();
    					}
    				}	
    					
    				} catch (FileUploadException e) {
    					
    					e.printStackTrace();
    				}
    			}
    
    	}
    
    
    

    web.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
      <display-name>picture-up</display-name>
      <servlet>
      		<servlet-name>uppicture</servlet-name>
      		<servlet-class>com.picture.servlet.upServlet</servlet-class>
      </servlet>
      <servlet-mapping>
      		<servlet-name>uppicture</servlet-name>
      		<url-pattern>/uppicture</url-pattern>
      </servlet-mapping>
    </web-app>

    好了,希望能帮到你们

     

    展开全文
  • 利用javaweb、jsp、mysql语言进行编写,实现网上书城代码。... 后台 2.1 管理员登陆 2.2 书籍类别查询 2.3 书籍管理 2.3.1 新增 2.3.2.1 删除 2.3.2.2 修改 2.3.2.3 上传图片 2.3.2.4 上架 2.4订单管理
  • java实现上传图片存入到数据库,只能用炫酷来形容,感兴趣就下载看看吧
  • 打开电脑硬盘,随机获取文件夹中的图片,并把图片保存服务器中的临时文件夹中,在从临时文件夹中把图片路径保存到数据库中!本文采用的是MYSql数据库,Myeclipse工具。 二、项目基本结构: 三、jar包: 四、代码...

    一、
    最近复习了下以前的知识,其中包括图片上传数据库,并显示在浏览器中!
    原理:
    打开电脑硬盘,随机获取文件夹中的图片,并把图片保存到服务器中的临时文件夹中,在从临时文件夹中把图片路径保存到数据库中!本文采用的是MYSql数据库,Myeclipse工具。

    二、项目基本结构:
    项目在这里插入图片描述
    三、jar包:
    在这里插入图片描述

    四、代码块:

    1、数据库连接类:

    package com.db;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    
    public class DBConnection {
    	private static final String Driver = "com.mysql.jdbc.Driver";
    	private static final String url="jdbc:mysql://localhost:3306/uploading";
    	private static final String user = "root";
    	private static final String password = "123456";
    	private Connection conn = null;
    	
    	public DBConnection() throws Exception { // 进行数据库连接
    		try {
    			Class.forName(Driver); // 用反射加载数据库驱动
    			this.conn = DriverManager.getConnection(url, user, password);
    		} catch (Exception e) {
    			throw e; // 抛出异常
    		}
    	}
    
    	public Connection getConnection() {
    		return this.conn; // 取得数据库的连接
    	}
    
    	public void close() throws Exception { // 关闭数据库
    		if (this.conn != null) {  
    			try {
    				this.conn.close(); // 数据库关闭
    			} catch (Exception e) {
    				throw e;
    			}
    		}
    	}
    }
    
    
    

    2、实体类bean:

    package com.pojo;
    
    public class User {
    	private int id;
    	private String name;
    	private String imgurl;
    	public int getId() {
    		return id;
    	}
    	public void setId(int id) {
    		this.id = id;
    	}
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	public String getImgurl() {
    		return imgurl;
    	}
    	public void setImgurl(String imgurl) {
    		this.imgurl = imgurl;
    	}
    
    	
    	
    }
    
    

    3、数据业务处理类:

    package com.service;
    
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.util.ArrayList;
    import java.util.List;
    
    import com.db.DBConnection;
    import com.pojo.User;
    
    public class Userdao  {
    	private Connection conn=null;//数据库连接对象
    	private PreparedStatement pstmt=null;//数据库操作对象
    	private DBConnection db=null;
    	public Userdao() throws Exception {
    		this.db=new DBConnection();
    		this.conn=db.getConnection();
    	}
    	//添加名称和图片
    	public boolean addUser(User user) throws Exception{
    		boolean flag=false;
    		String sql="insert into uploading(name,imgurl) values(?,?)";
    		this.pstmt=this.conn.prepareStatement(sql);
    		this.pstmt.setString(1,user.getName());
    		this.pstmt.setString(2,user.getImgurl());
    		if(this.pstmt.executeUpdate()>0){
    			flag=true;
    		}
    		this.pstmt.close();
    		return flag;
    	}
    	//遍历
    	public List<User> findAll() throws Exception{
    		List<User> list =new ArrayList<User>();
    		String sql="select * from uploading";
    		this.pstmt=this.conn.prepareStatement(sql);
    		ResultSet rs=this.pstmt.executeQuery();
    		while(rs.next()){
    			User u=new User();
    			u.setId(rs.getInt(1));
    			u.setName(rs.getString(2));
    			u.setImgurl(rs.getString(3));
    			list.add(u);
    		}
    		this.pstmt.close();
    		return list;
    		
    	}
    	
    }
    
    

    4、数据库操作类(Servlet)

    package com.servlet;
    
    import java.io.File;
    import java.io.IOException;
    import java.util.List;
    import java.util.UUID;
    
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    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.FileItemFactory;
    import org.apache.commons.fileupload.disk.DiskFileItemFactory;
    import org.apache.commons.fileupload.servlet.ServletFileUpload;
    
    import com.pojo.User;
    import com.service.Userdao;
    
    @WebServlet(name="Inertm",urlPatterns="/Inertm")
    
    public class Inertm extends HttpServlet {
    	
    	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
    			throws ServletException, IOException {
    		System.out.println("方法开始执行");
    		resp.setContentType("application/json;charset=utf-8");
    		req.setCharacterEncoding("utf-8");
    		resp.setCharacterEncoding("utf-8");
    		String name=null;
    		// 验证请求是否满足要求(post 请求 / enctype 是否以multipart打头
    				boolean isMultipart = ServletFileUpload.isMultipartContent(req);
    				// 如果不满足要求就立即结束对该请求的处理
    				if (!isMultipart) {
    					return;
    				}
    				try {
    					// FileItem 是表单中的每一个元素的封装
    					// 创建一个 FileItem 的工厂类
    					FileItemFactory factory = new DiskFileItemFactory();
    					// 创建一个文件上传处理器(装饰设计模式)
    					ServletFileUpload upload = new ServletFileUpload(factory);
    					// 解析请求
    					List<FileItem> items = upload.parseRequest(req);
    					System.out.println(items);
    
    					for (FileItem item : items) {
    						// 判断文件类型
    						if (item.isFormField()) {
    							// 文本类型
    							String filename = item.getFieldName();
    							if (filename.equals("user")) {
    								name = item.getString("UTF-8");
    								System.out.println(name);
    							}
    						} else {
    							// 文件类型	
    							// 获取文件后缀名
    							String imgtype = item.getName().substring(item.getName().lastIndexOf("."));
    							// 给文件重新命名防止重复
    							String imgName = UUID.randomUUID() + imgtype;
    							System.out.println();
    							String path="D:\\JAVA_2\\Combat\\foryn\\WebRoot\\upload";
    							// 将上传的文件保存到服务器
    							item.write(new File(path, imgName));
    
    							// 把服务器中的路径添加到数据库中
    							String sqlPath=null;
    							sqlPath = "upload/" + imgName;
    							System.out.println("访问路径:" + sqlPath);
    							// 将路径保存到数据库
    							User u=new User();
    							u.setName(name);
    							u.setImgurl(sqlPath);
    							Userdao dao=new Userdao();
    							boolean flag=dao.addUser(u);
    							if(flag){
    								resp.getWriter().write("ok");;
    							}else{
    								resp.getWriter().write("on");;
    
    							}
    						}
    					}
    				} catch (Exception e) {
    					e.printStackTrace();
    				}
    
    	}
    }
    
    

    5、图片上传提交页(html)

    <!DOCTYPE html>
    <html>
      <head>
        <title>insert.html</title>
    	
        <meta name="keywords" content="keyword1,keyword2,keyword3">
        <meta name="description" content="this is my page">
        <meta name="content-type" content="text/html; charset=UTF-8">
        <meta http-equiv="Content-type" content="text/html" charset="utf-8"/>
        
      	<script type="text/javascript" src="Jquery/jquery.min.js"></script>
    
    
      </head>
      
      <body>
        <form action="Inertm"  method="post"   enctype="multipart/form-data">
        		名称:<input type="text" id="user" name="user"><br>
        		图片:<input class="fileInput" id="file" type="file" name="image" />
        		<input type="submit" value="提交" onclick="return upload()"/>
        </form>
    	<!-- <script type="text/javascript">
        		function upload(){
        		var username = $("#user").val();
        		var filename = $("#file").val();
        		var url = "http://localhost:8080/foryn/Inertm";
        			$.ajax({
        			url:url,
        			type:"post",
        			dataType:"json",
        			data:{"username":username,"filename":filename},
        			success:function(data){
        				if(data.success){
        					alert("添加成功");
        				
        			}
        			}
        		});
        		}
        		
        	</script> -->
      </body>
    </html>
    
    

    6、显示页面(jsp)

    <%@ page language="java" import="java.util.*,com.service.Userdao,com.pojo.User" pageEncoding="utf-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'index.jsp' starting page</title>
    	<meta http-equiv="pragma" content="no-cache">
    	<meta http-equiv="cache-control" content="no-cache">
    	<meta http-equiv="expires" content="0">    
    	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    	<meta http-equiv="description" content="This is my page">
    	<!--
    	<link rel="stylesheet" type="text/css" href="styles.css">
    	-->
      </head>
      
      <body>
       <%
       		Userdao dao = new Userdao();
       		 List<User> list=dao.findAll();
        %>
        <table border="1">
        	<tr>
        		<td>名称</td>
        		<td>图片</td>
        	</tr>
        	<%
        		for(User u:list){
        	 %>
        	<tr>
        		<td><%=u.getName() %></td>
        		<td><img  style="width:50px;height:50px"  src="<%=u.getImgurl()%>"></img></td>
        	</tr>
        	<% }%>
        </table>
      </body>
    </html>
    
    
    展开全文
  • Javaweb应用图片文件上传并预览,Tomcat服务器存储至磁盘,数据库mysql存储其图片路径
  • JavaWeb上传图片到服务器,存储到数据库,并在页面显示 Servlet @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //设置编码 req....

    JavaWeb上传图片到服务器,存储到数据库,并在页面显示

    Servlet

        @Override
        protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            //设置编码
            req.setCharacterEncoding("UTF-8");
            resp.setContentType("text/html;charset=utf-8");
            boolean isMultipart = ServletFileUpload.isMultipartContent(req);
            //上传到服务器的存放路径
            String uploadFilePath = req.getSession().getServletContext().getRealPath("upload/");
    
            //判断上传的数据是不是多段数据
            if (isMultipart) {
                //创建工厂实现类
                DiskFileItemFactory factory = new DiskFileItemFactory();
                //创建临时文件目录
                File tempPath = new File("E://abc");
                //设置临时文件存放的路径
                factory.setRepository(tempPath);
                //设置缓冲区大小
                factory.setSizeThreshold(10240);
                //用于解析上传数据的工具类ServletFileUpload
                ServletFileUpload upload = new ServletFileUpload(factory);
                //设置单个文件最大值
                upload.setSizeMax(61440000);
    
                //初始化为空
                String username = null;
                String phone = null;
                String sex = null;
                String name = null;
                String place = null;
                String hometown = null;
                String headimgpath = null;
                //调用解析方法
                try {
                    //定义一个集合 接受上传的所有请求参数
                    List<FileItem> list = upload.parseRequest(req);
                    //循环判断,每一个表单项,是普通类型,还是上传的文件
                    for (FileItem fileItem : list) {
                        if (fileItem.isFormField()) {
                            //普通表单项
                            String filedName = fileItem.getFieldName();
                            if (filedName.equals("username")) {
                                username = fileItem.getString("UTF-8");
                            } else if (filedName.equals("phone")) {
                                phone = fileItem.getString("UTF-8");
                            } else if (filedName.equals("truename")) {
                                name = fileItem.getString("UTF-8");
                            } else if (filedName.equals("sex")) {
                                sex = fileItem.getString("UTF-8");
                            } else if (filedName.equals("place")) {
                                place = fileItem.getString("UTF-8");
                            } else if (filedName.equals("hometown")) {
                                hometown = fileItem.getString("UTF-8");
                            }
    
                        } else {
                            //上传的图片,获取到文件名
                            headimgpath = fileItem.getName();
                            if (headimgpath != null && !headimgpath.equals("")) {
                                String str = headimgpath.substring(headimgpath.lastIndexOf(".") + 1);
                                //判断图片类型
                                if ("png".equals(str) || "jpg".equals(str)) {
                                    //保存到服务器
                                    File saveFile = new File(uploadFilePath, headimgpath);
                                    fileItem.write(saveFile);
                                    out.println("图片上传成功");
                                } else {
                                    return;
                                }
    
                            }
    
                        }
                    }
                } catch (Exception e) {
    
                    e.printStackTrace();
                }
    
                //拿到LoginServlet中保存到session中的已经登录的user
                User user = (User) req.getSession().getAttribute("user");
                //创建UserInfo对象
                UserInfo userInfo = new UserInfo(null, username, phone, name, sex, place, hometown, headimgpath);
                // 调用 userService的方法处理业务
    
                boolean flag = userService.UpdateUserInfo(userInfo, user);
                if(flag){
                    //req.setAttribute("AddSuccess","success");
                    req.getRequestDispatcher("QueryStoreTypeShowServlet").forward(req,resp);
                }else{
                   // req.setAttribute("AddError","error");
                    req.getRequestDispatcher("updateinfo.jsp").forward(req,resp);
                }
    
            }
        }
    

    将图片路径存放到数据库

    serviceImpl:

      @Override
        public boolean UpdateUserInfo(UserInfo userinfo, User user) {
            return userDao.UpdateUserInfo(userinfo,user);
        }
    

    service层:

     /**
         * 修改个人信息
         */
        public boolean UpdateUserInfo(UserInfo userinfo, User user);
    

    dao层:

      /**
         * 修改账户个人信息
         */
        public boolean UpdateUserInfo(UserInfo userinfo,User user);
    

    daoImpl:

        @Override
        public boolean UpdateUserInfo(UserInfo userinfo,User user) {
            QueryRunner runner = new QueryRunner(JdbcUtils.getDataSource());
            String sql = "update userinfo set username=?,phone=?,name=?,sex=?,place=?,hometown=?,headimgpath=? where usernum =(select userid from t_user where email=?)";
    
            Object[] objects = {
                    userinfo.getUsername(),userinfo.getPhone(),userinfo.getName(),userinfo.getSex(),userinfo.getPlace(),userinfo.getHometown(),userinfo.getHeadimgpath(),
                    user.getEmail()
            };
            try {
                int count = runner.update(sql,objects);
                if(count>0){
                    return true;
                }else{
                    return false;
                }
            } catch (SQLException e) {
                e.printStackTrace();
                return false;
            }
        }
    

    前端显示头像

    <span class="item_name" style="width:120px;">头 像</span>
    
    <img src="upload/${requestScope.userInfo.headimgpath}"width="60" height="60" name="headimg">
    
    展开全文
  • java+web上传图片保存到数据库

    千次阅读 2019-04-12 11:48:46
    1.上传图片:html代码示例。 <div class="form-group col-sm-12"> <label class="col-sm-2 control-label no-padding-right"><span class="ytRequired"></span>头像:</label> &...

    1.上传图片:html代码示例。

    <div class="form-group  col-sm-12">
        <label class="col-sm-2 control-label no-padding-right"><span class="ytRequired"></span>头像:</label>
        <div class="col-sm-4">
            <div class="col-sm-12 upload-content" id="upImageDiv">
                <input type="file" id="uploadInput" accept="image/gif,image/jpeg,image/x-png" class="fileInput" />
                <a href="javascript:void(0)" class="selectImage">上传图片</a>
            </div>
            <div class="imageBox" id="imageBox" style="margin-top: 10%;">
            </div>
        </div>
    </div>

    2.上传图片:初始页面要加入代码,uploadInput是上面的input框的id,imageBox,是上面要显示图片的div。

    <script type="text/javascript">
    	uploadImageInit("uploadInput", "imageBox");
    </script>

    上传图片封装的js文件uploadLocalImage.js。

    /**
     * 初始化图片(图片上传封装控件)
     * @author tyg
     */
    
    /**
     * 初始化上传图片控件(只能单张图片)
     * @param inputId		input框点击上传的按钮id,可空,默认:uploadInput
     * @param boxId			显示区域的id,可空,默认:imageBox
     * @returns
     */
    function uploadImageInit(inputId, boxId){
    	if(inputId == undefined || inputId == null){
    		inputId = "uploadInput";
    	}
    	if(boxId == undefined || boxId == null){
    		boxId = "imageBox";
    	}
    	$("#"+inputId).change(function(){
    		var reader = new FileReader();
    		var file = document.getElementById(inputId).files[0];
    		if(file.size/1024/1024 > 10){
    			$.success("上传图片不能大于10M!");
    		}
    		reader.readAsDataURL(file);
    		reader.onload = function(e) {
    			var imgHtml="";
    			imgHtml+="<div class='image_item' style='width:160px;height:160px;'>";
    			imgHtml+="<img src='"+this.result+"' alt='' style='display: block;'/>";
    			imgHtml+="<span class='delete' onclick='deleteImageItem(this)'></span>";
    			imgHtml+="</div>";
    			$("#" + boxId).html(imgHtml);
    		}
    	});
    }
    /**
     * 显示图片,一般用于修改页面,将之前的图片显示出来(只能单张)
     * @param boxId	显示区域的id,可空,默认:imageBox
     * @param url	图片地址
     * @returns
     */
    function showImage(boxId, url){
    	if(boxId == undefined || boxId == null){
    		boxId = "imageBox";
    	}
      	var imgHtml="";
      	imgHtml+="<div class='image_item' style='width:160px;height:160px;'>";
      	imgHtml+="<img src='"+url+"' alt='' style='display: block;'/>";
      	imgHtml+="<span class='delete' onclick='deleteImageItem(this)'></span>";
      	imgHtml+="</div>";
      	$("#" + boxId).html(imgHtml);
    }
    
    /**
     * 显示图片,一般用于修改页面,将之前的图片显示出来(可以多张)
     * @param boxId	显示区域的id,可空,默认:imageBox
     * @param url	图片地址
     * @returns
     */
    function showImages(boxId, url){
    	if(boxId == undefined || boxId == null){
    		boxId = "imageBox";
    	}
    	var imgHtml=$("#" + boxId).html();
    	imgHtml+="<div class='image_item' style='width:160px;height:160px; margin-left:5px; float: left'>";
    	imgHtml+="<img src='"+url+"' alt='' style='display: block;'/>";
    	imgHtml+="<span class='delete' data-id='"+url+"' onclick='deleteImageItem(this)'></span>";
    	imgHtml+="</div>";
    	$("#" + boxId).html(imgHtml);
    }
    /**
     * 获取单张图片文件
     * @param inputId	input框的id
     * @returns	返回的是文件
     */
    function getImageUrl(inputId){
    	return document.getElementById(inputId).files[0];
    }
    // 删除图片
    function deleteImageItem(obj){
        var id = $(obj).attr("data-id");
        photo.deletePhoto(id);
      	$(obj).parent().remove();
    };

    3.上传图片:获取图片文件,返回值是一个文件,js代码示例。

    var file = getImageUrl("uploadInput");

    4.上传图片:上传文件必须使用FormData。

    var formData = new FormData();
    formData.append('phone', params.phone);
    formData.append('name', params.name);
    formData.append('file', file);
    // 上传图片的请求
    $.processDataImg(url, formData, function(result) {
    	if (result.state == 200) {
    		$.success('操作成功!');
    		user.backList();
    	} else {
    		$.error(result.message);
    	}
    })

    注意:发起请求时需要加入:

    contentType: false,
    processData: false,
    mimeType: "multipart/form-data",

    5.上传图片:后台接收要使用:@RequestParam(required = false) MultipartFile file,required=false是为了避免为空出现异常,并且后台要在spring的配置文件配置如下代码。

    <!-- SpringMVC默认是关闭fileupload功能的,开启该能够并验证文件上传 -->
    <bean id="multipartResolver"
        class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="maxUploadSize" value="20000000"/>
        <property name="maxInMemorySize" value="1024000" />
    </bean>
    @RequestMapping(value = "/user/addUser", method = RequestMethod.POST)
    public Object addUser(UserAddVO user, @RequestParam(required = false) MultipartFile file) throws BusinessException {
    	user.setFileHeadImg(file);
    	userI.addUser(user);
    	return ResultUtil.success();
    }
    
    /**
     * 读取图片
     * @param file	文件
     * @param size	上传图片大小(单位M)
     * @return
     * @throws BusinessException
     * @return byte[]
     * @author tyg
     * @date   2019年3月19日上午12:33:47
     */
    public static byte[] getImgByte(MultipartFile file, Long size) throws BusinessException {
    	if (file != null) {
    		try {
    			size = size == null ? 5120000L : size * 1024L * 1024L;
    			Assert.isTrue(file.getSize() > size.longValue(), "上传图片不能超过"+(size / 1024L / 1024L)+"M!");
    			InputStream stream = file.getInputStream();
    			byte[] pictureData = new byte[(int) file.getSize()];  
    			stream.read(pictureData);
    			return pictureData;
    		} catch (IOException e) {
    			e.printStackTrace();
    			logger.error("读取文件失败!");
    		}
    		
    	}
    	return null;
    }

    6.上传图片:后台将file转为byte[],就可以直接存到数据库了数据的类型要设置为blob或者是longblob。

    byte[] fileByte = ImageUtil.getImgByte(file,null);

    7.显示图片:

    showImage("imageBox", "/img/showUserHeadImage?_"+new Date().getTime()+"&id="+id);
    /**
     * 响应图片流
     * @param response
     * @param imgData
     * @return void
     * @author tyg
     * @date   2019年3月15日上午10:49:55
     */
    public static void writeImg(HttpServletResponse response, byte[] imgData) {
    	response.setContentType("image/jpeg");
    	ServletOutputStream outputStream = null;
    	try {
    		outputStream = response.getOutputStream();
    		outputStream.write(imgData);
    		outputStream.flush();
    	} catch (IOException e) {
    		e.printStackTrace();
    		logger.info("读取文件失败!");
    	} finally {
    		closeIo(outputStream);
    	}
    }

     

    展开全文
  • javaweb上传图片 之前写过图片上传的案例,但是时间一长就忘了,这次写的这个程序用到了图片的上传,并且能够图文显示,所以写了这篇文章来记录一下。 首先来看下我的项目结构,我写的是房屋发布的信息,图片上传...
  • 前端使用layui的图片上传,将文件base64编码,然后在后端使用转码类来操作base64编码,并保存图片到本地,继而获取文件地址,将文件地址保存到数据库中 1.使用layui的图片上传 infoset.jsp layui.use('upload', ...
  • 前端使用from表单提交图片 HTML <form action="${pageContext.request.contextPath}/pictureServlet" method="post" enctype="multipart/form-data"> <input id="input" type="file" name="file">
  • 分页查询
  • //通过FileItem获取输入流对象,通过输入流可以获取到图片二进制数据 InputStream is=item.getInputStream(); //D:\tomcat\tomcat71_sz07\webapps\11.20\images String realPath = ...
  • java图片上传到数据库

    2018-01-08 02:52:37
    #要层次清晰,bean、dao、service、controller、mybatis,按照这样分层来做商品的新增(有商品id,商品名称,商品图片),我是用myeclipse开发工具,你们可以用form表单提交,也可以用ajax提交
  • 基于SSM(Spring+SpringMvc+Mybatis)框架的图片上传并保存到数据库中与回显的案例
  • 通过(ajaxFileupload.js)提供的ajaxFileUpload方法,异步上传图片,在后台获取并转二进制先存入session中,成功后返回图片的idajax,并通过jQuery改变 img src的地址请求该图片的二进制资源。 JavaScript ...
  • 我使用SpringBoot复原了一下源码,需要的可以去我的GitHub上下载 ... 从前台页面获取图片,后台接收图片文件转化成数据,然后存储到数据库,然后反向输出jsp页面 二、分析一下数据转换和数据流通...
  • 上篇文章中我介绍了:JSP 选取图片并将相对路径修改为绝对路径upload上传到Mysql数据库中 下面介绍怎么将图片读出来 首先创建一个openImage.jsp页面 代码: <%-- Created by IntelliJ IDEA. User: wangzeyi ...
  • 上传图片: 前台: 表单类型 enctype="multipart/form-data" 提交方式 method="post" 后台: 注:文件上传必须在Servlet类上添加注解! @MultipartConfig 1. 获取Part对象 request.getPart("name"); name代表的...
  • java实现文件上传到数据库

    万次阅读 2015-03-30 21:09:15
    欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit...图片链接和图片上传 LaTex数学公式 UML序列图和流程图 离线写博客 导入导出Markdown文件 丰富的快捷键 快捷键 加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl
  • 为什么80%的码农都做不了架构师?>>> ...
  • springMVC+Mybatis实现图片上传、保存到数据库、查询显示——入坑实践1、前提环境1.1、前言1.2 所需环境1.2.1 数据库表(不需要也行,相当于数据库里面就没有嘛!)1.2.2 pom.xml文件需要的架包1.2.3 **spring-mvc....
  • [图片说明](https://img-ask.csdn.net/upload/201611/02/1478089705_891102.png) 貌似是tomcat的问题,研究三四天了,快奔溃了,大神们帮帮忙,十分感谢! 信息: Reloading Context with name [/nwnuSecondHandWeb] ...
  •  Note: 记得设置form的  enctype="multipart/form-data" ..." id="assetphotourl" type="file" name="assetphotourl" multiple/> ...6.图片上传成功,且成功将其在服务器端的路径保存数据库中。
  • 这是一个电子相册,可实现用户注册,登录,验证码验证,本地图片上传在线浏览等功能
  • JavaWeb利用jsp 选取图片并将相对路径修改为绝对路径upload上传到Mysql数据库中 在正式的项目中,不可能只提交一个照片当作一张表,还会有关于照片的信息,那么基于servletfileupload怎么进行判断才能同时将表单中的...
  • Java web实现图片上传服务器、同步保存数据库以及如何在前端页面展示教程一、上传二、后端代码处理三、数据库读取图片在前端页面展示(重点) 大概流程: 1.上传插件的选择:此篇博文选择的是jQuery的zyupload文件...
  • 一、文件的上传和下载1、文件上传介绍1.1什么是文件上传: 要将客户端(浏览器)大数据存储服务器端,不将数据直接存储到数据库中,而是要将数据存储服务器所在的磁盘上,这就要使用文件上传。1.2为什么使用...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,421
精华内容 1,368
关键字:

javaweb上传图片到数据库

java 订阅