精华内容
下载资源
问答
  • 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);
    	}
    }

     

    展开全文
  • 数据库取出字符数组,输出页面 @RequestMapping ( "reagentImage" ) public void reagentImage (String rea_id,HttpServletResponse resq) throws IOException{ Reagent reagent = reagentservice...
    @RequestMapping(value="insertReagent",method=RequestMethod.POST)
        @ResponseBody
        public Integer insertReagent(@RequestParam("file")MultipartFile file,Reagent reagent){
            try {
                byte[] logo=file.getBytes();
                reagent.setImage_path(logo);
            } catch (IOException e) {
                e.printStackTrace();
            }
            int i = reagentservice.insertReagent(reagent);
            return i;
        }

    method=RequestMethod.POST仅支持post方式
    @RequestParam(“file”)MultipartFile 限定名字叫file的参数传入封装成MultipartFile 对象
    byte[] logo=file.getBytes();取出文件的字符数组

    从数据库取出字符数组,输出到页面

        @RequestMapping("reagentImage")
        public void reagentImage(String rea_id,HttpServletResponse resq) throws IOException{
            Reagent reagent = reagentservice.queryReagentId(rea_id);
            resq.setContentType("image/jpg");
            resq.getOutputStream().write(reagent.getImage_path());
    
        }

    setContentType这 个方法设置发送到客户端的响应的内容类型
    resq.getOutputStream().write(reagent.getImage_path());
    返回一个记录二进制的响应数据的输出流

        <img id="image" alt="" src="/MedLab/reagentImage.do?rea_id=78">

    页面img src直接指向方法

    展开全文
  • 最近在学习java web,在练习DVD信息管理系统时一直对照片上传问题的处理感到非常棘手,在我的仔细研究和钻研下,终于完美解决了这个难题,下面我讲述一下具体的步骤: 思路阐述:将图片项目的/webTest/imgs/...

      最近在学习java web,在练习DVD信息管理系统时一直对照片上传问题的处理感到非常棘手,在我的仔细研究和钻研下,终于完美解决了这个难题,下面我讲述一下具体的步骤:

    思路阐述:将图片放到项目的/webTest/imgs/文件夹下,为了避免图片名重复,将图片名改为获取当前秒数+ .jpg的格式。然后将图片的项目路径储存到数据库中,以便后面展示图片进行读取图片信息。

     

    第一步:准备工作

    环境要求

    1. 开发环境: Eclipse

    2.导入两个文件上传的jar包

     

    3 MySQL平台,我用的是dbForge Studio for MySQL。

     

    第二步 创建一个PhotoDao类来处理前台file Input上传的图片资源

     
      
    /**
    
    * @author Mr Tang
    
    * @version Create Time:2018年10月24日 下午8:22:22
    * com.tang.dao
    *
    
    */
    package com.tang.dao;
    
    import java.io.File;
    import java.util.Date;
    import java.util.List;
    
    import javax.servlet.ServletContext;
    import javax.servlet.http.HttpServletRequest;
    
    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;
    
    /**
     * @author Mr Tang
     *
     */
    public class PhotoDao {
        /**
        *2018年10月24日下午10:41:33
        *这个函数的功能是获取前端的数据集合,将文件打包成File以便后续操作
         */
        public static List<FileItem> getRequsetFileItems(HttpServletRequest request,ServletContext servletContext){
            boolean isMultipart=ServletFileUpload.isMultipartContent(request);
            if(isMultipart) {
                DiskFileItemFactory factory = new DiskFileItemFactory();
                String str="javax.servelet.context.tempdir";
                File repository=(File) servletContext.getAttribute(str);
                factory.setRepository(repository);
                ServletFileUpload upload=new ServletFileUpload(factory);
                try {
                    return upload.parseRequest(request);
                }catch (FileUploadException e) {
                    // TODO: handle exception
                    return null;
                }
            }else {
                return null;
            }
        }
        /**
        *2018年10月24日下午10:37:59
        *这个函数的功能是将文件传到预先设置的绝对路径中,也就是项目里的imgs文件夹
         */
        public static boolean saveFile(FileItem item,String fileName) {        
            File savePath=new File("E:\\Users\\javawebspace\\dvdWeb3.5\\WebContent\\imgs");
            if(!savePath.exists()) {
                savePath.mkdirs();
            }
            File uploadFile=new File(savePath+File.separator+fileName);
            try{
                item.write(uploadFile);
                System.out.println("保存文件成功");
                return true;
            }catch(Exception e){
                System.out.println("保存文件失败");
            }
            return false;
        }
        /**
        *2018年10月24日下午8:02:04
        *这个函数的功能是获取当前时间点与1970年的间隔秒数
         */
        public static int getSecondTimestamp(Date date){
            if (null == date) {
                return 0;
            }
            String timestamp = String.valueOf(date.getTime());
            System.out.println(timestamp);
            int length = timestamp.length();
            if (length > 3) {
                return Integer.valueOf(timestamp.substring(0,length-3));
            } else {
                return 0;
            }
        }
        
        /**
         * 
        *2018年10月24日下午8:42:05
              *这个函数的功能是得到新的照片名称
         */
         public static String getPhotoNewName() {
             Date date=new Date();
             int second=getSecondTimestamp(date);
             String fileName=String.valueOf(second)+".jpg";
             return fileName;
        }
         
         /**
         *2018年10月24日下午8:48:58
                  *这个函数的功能是判断文件后缀是否是jpg格式
          */
         public static boolean isGif(FileItem item) {
            String fileFullName=item.getName();
             File fileInfo=new File(fileFullName);
             String suffix = fileInfo.getName().substring(fileInfo.getName().lastIndexOf(".") + 1);
             if(suffix.equals("jpg")) {
                 return true;
             }
             return false;        
         }
    }
     
      

     

     

    第三步 创建一个接收图片的jsp前端页面

     

      1 <%@ page language="java" contentType="text/html; charset=UTF-8"
      2     pageEncoding="UTF-8"%>
      3 <%
      4     String path = request.getContextPath();
      5     String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()
      6             + path + "/";
      7 %>
      8 <!DOCTYPE html>
      9 <html>
     10 <head>
     11 <meta charset="UTF-8">
     12 <title>添加DVD信息</title>
     13 </head>
     14 <style type="text/css">
     15 table.gridtable {
     16     font-family: verdana, arial, sans-serif;
     17     font-size: 15px;
     18     color: #333333;
     19     border-width: 1px;
     20     border-color: #666666;
     21     border-collapse: collapse;
     22 }
     23 
     24 table.gridtable th {
     25     border-width: 1px;
     26     padding: 8px;
     27     border-style: solid;
     28     border-color: #666666;
     29     background-color: #dedede;
     30 }
     31 
     32 table.gridtable td {
     33     border-width: 1px;
     34     padding: 8px;
     35     border-style: solid;
     36     border-color: #666666;
     37     background-color: #ffffff;
     38 }
     39 </style>
     40 <script type="text/javascript">
     41     //检查登录表单
     42     function checkBox() {
     43 /*         var name = document.getElementById("dvdName").value;
     44         var type = document.getElementById("dvdType").value;
     45 
     46         if (name != ""&&type!="") {
     47             return true;
     48         } else {
     49             document.getElementById("isEmpty").value = "EMPTY";
     50             alert("DVD信息不能为空哦~");
     51             document.getElementById("loginname").focus(); //光标占位
     52             return false;
     53         } */
     54     }
     55 </script>
     56 <body>
     57     <div style="margin-left: 400px">
     58         <h1 style="margin-left: 10px;">添加DVD信息:</h1>
     59         <br>
     60         <form  method="post"
     61             action="${pageContext.request.contextPath}/ProductServlet?method=add"
     62             enctype="multipart/form-data"
     63             >
     64 <!--             οnsubmit=" return checkBox()"
     65  -->            <table class="gridtable">
     66                 <tr>
     67                     <td>编号(已自动分配不可修改):
     68                         <div id="myDiv">
     69                         </div>
     70                     </td>
     71                     <td width="300px"><input id="pr_dvdNum" type="text" name="pr_dvdNum"
     72                     value="${nextNum }" disabled="disabled"
     73                      style="border: 0px; font-size: 20px;">
     74                         </td>
     75                 </tr>
     76                 <tr>
     77                     <td>请输入DVD名字:</td>
     78                     <td width="300px"><input id="dvdName" type="text"
     79                         name="dvdName" style="border: 0px; font-size: 20px;"></td>
     80                 </tr>
     81                 <tr>
     82                     <td>请输入DVD状态:</td>
     83                     <td width="300px"><input id="dvdState" type="radio" checked
     84                     value="未借出"    name="dvdState" style="border: 0px; font-size: 20px;">未借出
     85                     <input id="dvdState" type="radio" 
     86                     value="已借出"    name="dvdState" style="border: 0px; font-size: 20px;">已借出
     87                     </td>
     88                 </tr>
     89                 <tr>
    90 <td>请传入DVD图片<br>必须是gif格式</td> 91 <td><input type="file" name="file" 92 style="border: 0px; font-size: 20px;" 93 /></td>

    94 </tr> 95 <tr> 96 <td>请输入DVD类型:</td> 97 <td width="300px"><input id="dvdType" type="text" 98 name="dvdType" style="border: 0px; font-size: 20px;"> 99 <input type="hidden" name="currentPage" value="${currentPage}"> 100 101 </td> 102 </tr> 103 <tr> 104 105 <td colspan="2"><input type="submit" value="添加" 106 style="width: 120px; height: 30px; background-color: blue; border: 0px; color: #fff5ee; font-size: 15px; margin-left: 180px;"> 107 <a href="${pageContext.request.contextPath}/ProductServlet?method=toMainView&currentPage=${currentPage }" style="float: right;">返回主页</a></td> 108 </tr> 109 </table> 110 <input type="hidden" id="isEmpty" name="isEmpty" value="FULL"> 111 </form> 112 </div> 113 </body> 114 </html>

     

    说明:由于我是直接把项目中的整个jsp页面展示出来了,所以只需注意红色的部分就可以了。

    第四步 创建后台处理Servlet服务端

      1 package com.tang.control;
      2 import java.io.IOException;
      3 import java.io.PrintWriter;
      4 import java.sql.SQLException;
      5 import java.util.ArrayList;
      6 import java.util.List;
      7 
      8 import javax.servlet.ServletContext;
      9 import javax.servlet.ServletException;
     10 import javax.servlet.annotation.WebServlet;
     11 import javax.servlet.http.HttpServlet;
     12 import javax.servlet.http.HttpServletRequest;
     13 import javax.servlet.http.HttpServletResponse;
     14 import javax.servlet.http.HttpSession;
     15 
     16 import org.apache.commons.fileupload.FileItem;
     17 
     18 import com.tang.common.Page;
     19 import com.tang.dao.DvdDao;
     20 import com.tang.dao.PhotoDao;
     21 import com.tang.dao.UserDao;
     22 import com.tang.models.DVDInfoData;
     23 
     24 /**
     25  * @author Mr Tang
     26  *
     27  */
     28 @WebServlet("/ProductServlet")
     29 public class ProductServlet extends HttpServlet {
     30     public ProductServlet() {
     31         super();
     32     }
     33     protected void doGet(HttpServletRequest request,
     34             HttpServletResponse response) throws ServletException, IOException {
     35 String method = request.getParameter("method");
     36         try {
     37             switch (method) {
     38                                 case "add":
     39                 //转接给相对应的函数去处理相关数据。
     40                 addDVDinfo(request, response);
     41                 break;
     42                      } catch (SQLException e) {
     43             // TODO Auto-generated catch block
     44             e.printStackTrace();
     45         }
     46     }
     47 /**
     48      * <p>
     49      *  这个函数实现了增加dvd的功能
     50      * <p>
     51      * @throws SQLException 
     52      * @throws ServletException 
     53      */
     54     private static void addDVDinfo(HttpServletRequest request, HttpServletResponse response) throws IOException, SQLException, ServletException {
     55         List<String> list=new ArrayList<String>();
     56         String filename=PhotoDao.getPhotoNewName();
     57         ServletContext servletContext=null;
     58         servletContext=request.getSession().getServletContext();
     59         //数据库中存储格式:/webTest/imgs/***.jpg
     60         //第一步:获取页面上上传的图片资源
     61         List<FileItem> items=PhotoDao.getRequsetFileItems(request,servletContext);
     62         boolean isLoadToSQL=false;
     63         for(FileItem item:items) {
     64             if(!item.isFormField()){
     65                 //判断后缀名是否是jpg
     66                 if(PhotoDao.isGif(item)) {
     67                     isLoadToSQL=PhotoDao.saveFile(item,filename);
     68                 }else {
     69                     System.out.println("后缀格式有误,保存文件失败");
     70                 }
     71             }else { 
     72                 /*获取表单中的非文件值
     73                 表单中的空间name值
     74                 System.out.println("name值:  "+item.getFieldName());
     75                 该name值空间中的value值
     76                 System.out.println(item.getString("UTF-8"));*/
     77                 list.add(item.getString("UTF-8"));
     78             }
     79         }
     80         String dvdNum=DvdDao.returnNextNum();
     81         //存在数据库里面的照片路径是在项目里的相对路径
     82         String finalPhotoName= request.getContextPath()+"/imgs/"+filename;
     83         int bol=DvdDao.addDVD(dvdNum, "《"+list.get(0)+"》",list.get(1),list.get(2),finalPhotoName);
     84         if(list.get(4).equals("FULL")) {
     85             if(bol>0) {
     86                 PrintWriter out=response.getWriter();                                           
     87                 out.flush();                                                                    
     88                 out.print("<script>");                                                          
     89                 out.println("alert('添加DVD信息成功!!!')");                                           
     90                 out.print("window.location.href='ProductServlet?method=toAddView&currentPage=");
     91                 out.print(list.get(3));    /*第四个数下标为3表示主页的页数*/                                                     
     92                 out.print("'</script>\");");                                                    
     93                 out.close();                                                                    
     94             }else {
     95                 PrintWriter out=response.getWriter();
     96                 out.flush();
     97                 out.print("<script>");
     98                 out.println("alert('很抱歉,添加DVD失败,请检查填入信息是否正确!!!')");
     99                 out.println("history.back();");
    100                 out.println("</script>");
    101                 out.close();
    102             }
    103         }
    104         else if(list.get(4).equals("EMPTY")){
    105             PrintWriter out=response.getWriter();
    106             out.flush();
    107             out.print("<script>");
    108             out.print("window.location.href='ProductServlet?method=toAddView';");
    109             out.println("</script>");
    110             out.close();
    111         }
    112     }
    113 protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
    114     doGet(request, response);
    115 }
    116 }    

    说明:由于我是直接把项目中的整个ProductServlet页面展示出来了,所以只需注意红色和蓝色的部分就可以了。红色部分的代码实现了文件存储在项目文件里,蓝色部分实现了将dvd实例化的对象存储到数据库中。

    第五步:结果展示

     

     

     

     

     

     

     

     

     

     

     

     

     

    附加:DVDInfoData.java 文件 和DvdDao.java 文件。(第一个是对DVD信息的封装,第二个是把dvd信息存储到数据库中)

    /**
    
    * @author Mr Tang
    
    * @version Create Time:2018年10月2日 下午6:39:04
    * com.tang.models
    *
    
    */
    package com.tang.models;
    
    /**
     * @author Mr Tang
     *
     */
    public class DVDInfoData {
    private String dvdnum;
    private String dvdname;
    private String dvdstate;
    private String dvdtype;
    private String dvdphoto;
    /**
     * 
     */
    
    public DVDInfoData() {
        super();
    }
    /**
     * @param dvdnum
     * @param dvdname
     * @param dvdstate
     * @param dvdtype
     * @param dvdphoto
     */
    public DVDInfoData(String dvdnum, String dvdname, String dvdstate, String dvdtype, String dvdphoto) {
        super();
        this.dvdnum = dvdnum;
        this.dvdname = dvdname;
        this.dvdstate = dvdstate;
        this.dvdtype = dvdtype;
        this.dvdphoto = dvdphoto;
    }
    }

     

     

    package com.tang.dao;
    
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.regex.Pattern;
    
    import com.tang.Util.BeanHandler;
    import com.tang.Util.BeanListHandler;
    import com.tang.Util.JDBCUtil;
    import com.tang.models.DVDInfoData;
    
    /**
     * @author Mr Tang
     * 这个类被用来处理来自数据库的DVD数据,增删改查以及其他功能的实现。
     * 继承自DBUtilsBaseDao,简化数据库操作
     */
    public class DvdDao extends DBUtilsBaseDao{
    /**
         * @author Mr Tang
         * @throws SQLException 
         * @expression This method is used to show all DVD information to users.
         *It must be do this...
         */
        @SuppressWarnings("unchecked")
        public static  List<DVDInfoData> ShowAllDVD() throws SQLException{
            String sql="SELECT * FROM dvddb order by dvdname desc" ;
            Object[] params= {};
            return (List<DVDInfoData>) JDBCUtil.query(sql, params, new BeanListHandler(DVDInfoData.class));
        }
    /**
         * 
         *2018年10月21日下午11:38:46
         *这个函数的功能是添加DVD信息
         */
        public static int addDVD(String dvdNum,String dvdName,String dvdstate,String dvdtype,String dvdphoto) throws SQLException {
            int result=0;
            if(dvdNum!=""&&dvdName!="") {
                Pattern pattern = Pattern.compile("^[-\\+]?[\\d]*$");
                if(pattern.matcher(dvdNum).matches()){
                    String sql="INSERT INTO dvddb (dvdnum,dvdname,dvdstate,dvdtype,dvdphoto) VALUES (?,?,?,?,?)" ;
                    Object[] params=new Object[]{
                            dvdNum,
                            dvdName,
                            dvdstate,
                            dvdtype,
                            dvdphoto
                    };
                    result=JDBCUtil.update(sql, params);
                }
            }
            return result;
        }
    }

     

    转载于:https://www.cnblogs.com/dontang-blog/p/9846897.html

    展开全文
  • asp.net mvc 上传图片到数据库
  • 我使用SpringBoot复原了一下源码,需要的可以去我的GitHub上下载 ... 从前台页面获取图片,后台接收图片文件转化成数据,然后存储到数据库,然后反向输出jsp页面 二、分析一下数据转换和数据流通...

    我使用SpringBoot复原了一下源码,需要的可以去我的GitHub上下载

    >>>>>>>>>>>>>>>>>源码这里下载

    >>>>>>>>>>>>>>>>>源码这里下载

    >>>>>>>>>>>>>>>>>源码这里下载

    链接:https://github.com/2637977081/SpringBootDC/tree/master/service-image-base64

    一、分析一下基本流程

        从前台页面获取图片,后台接收图片文件转化成数据,然后存储到数据库,然后反向输出到jsp页面

    二、分析一下数据转换和数据流通

      三、将图片存储到数据库中

         1、jsp页面将图片传到后台的过程

            jsp页面将图片通过form表单提交,后台通过MultipartFile类型接收图片文件

        

     

    【注】form表单的默认的提交方式 method="get" 和 编码为enctype="application/x-www-form-urlencoded"

        但我们要提交文件则需要将其改为method="post"和 enctype="multipart/form-data"

    这里使用<input type="file">上传文件到jsp页面,也便于传值到后台

    使用MultipartFile file接收参数文件

    2.在后台将数据转换,存储到数据库的过程

    po类User

    mapper.xml

    数据库image类型应该使用blob类型,但根据文件大小可设置

    TinyBlob 最大 255
    Blob 最大 65K
    MediumBlob 最大 16M
    LongBlob 最大 4G

    3.存储成功后数据库应该显示类似如下编码字符串

    四、将图片从数据库中取出并显示在jsp页面上

    1.从数据库获取图片

    【注】mybatis配置看上

    2.在jsp页面中显示

    直接在src里填入超链接,并将图片id传过去查询该图片

     

    展开全文
  • 1、备份MySQL数据库存放目录/var/lib/mysql下面的vos3000db数据库到/home/mysql_data里面,并且保存为vos3000db_bak_2013_05_09.tar.gz英文源文档 翻译: 白水代码下载: CSASPNETImageEditUpload.zip此示例演示了在...
  • ASP.NET MVC 4 - 上传图片到数据库

    千次阅读 2014-08-15 13:03:15
    这里演示如何在MVC WEB应用程序如何上传图片到数据库以及如何在WEB页面上显示图片数据库表对应整个Model类,不单图片数据一个字段,我们从数据表的定义开始: CREATE TABLE [dbo].[Products] ( [ProductID] ...
  • 上传图片到数据库有两种方式: 将图片保存的路径存储到数据库。 该方式的数据库字段是varchar类型的,毕竟存放的是路径嘛 将图片以二进制数据流的形式直接写入数据库字段中。 这种方式一般不推荐,因为对数据库...
  • 下面是Servlet如何把图片上传到数据库的步骤: 在Web项目的lib目录下引入上传文件的相关jar包,当然这两个jar包缺一包括,因为上传文件的jar包是依赖io.jar包的,所以要同时引入两个jar包 设置数据库存储文的类型...
  • JSP:上传图片到数据库并从数据库调用图片

    万次阅读 多人点赞 2018-08-01 10:09:17
    实现将图片放入数据库,并从数据库调用图片 准备:tomcat-9.0.01 jdk9 eclipse-ide mysql8.0 mysql-connector-java-8.0.11.jar(jdbc驱动包) 一个图片 1,建库/建表 create database bin_db; //建库 use bin_...
  • Javaweb上传图片途径到数据库

    千次阅读 多人点赞 2018-11-11 20:17:19
    Javaweb上传图片途径到数据库 结果如下 首先建立数据库存放上传图片路径数据库属性用varchar(),大小差不多设置为 255。 数据库连接在这里就不多说了 jsp页面 &lt;body&gt; &lt;form action=&...
  • 二进制上传图片到数据库 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="upload.aspx.cs" Inherits="二进制上传图片.upload" %> <!DOCTYPE html> <...h...
  • SSM 上传图片到数据库

    千次阅读 2018-07-05 23:45:47
    1.需要的包如下: a.commons-fileupload-1.3.2.jar b.commons-io-2.5.jar 2.文件上传的配置:(spring mvc.xml中进行相关配置) &lt;bean class="org.springframework.web.multipar...
  • ssm使用富文本框上传图片到数据库并显示界面

    千次阅读 多人点赞 2020-09-19 22:51:23
    实现效果(音频和word没试能不能上传) 插入数据库格式是这样的,显示时直接从数据库取即可 实现步骤 1.下载富文本框插件依赖的js 在线链接 2.引入js页面 3.加入代码 <script type="text/javascript">...
  • 面部信息采集页面 拍摄 重拍 后台代码: @PostMapping(value = "/uploadImage") public String uploadImage(ImageForm imageForm, Model model) { // 这之间可以加入将base64数据写入数据库的操作 model....
  • 有什么问题请与我联系:http://www.webjx.com web@webjx.com 转载请注明出处今天教给大家如何用php实现把图象上传到mysql数据库中。 在这个教程中我们需要建立3个PHP文件:readdir.php - 把图片到数据库的代码...
  • SSM上传图片并保存图片地址到数据库

    万次阅读 多人点赞 2018-11-06 22:06:50
    最近接的一个外包项目因为有要用到这个功能,所以打算使用SSM实现图片上传的功能,上传好后把图片地址保存到数据库,同时在前端显示图片。 使用maven构建项目,首先导入相关的jar,这里就放上传文件的jar配置,不然...
  • <br />将图片以二进制流的方式整体上传到数据库里,读取显示时,以二进制流的方式整体读出。这种方法虽然麻烦一点,但保存的图片整体数据库里。这样主机变更时不会导致图片丢失。 数据库:Wxqcs_User...
  • C#上传图片到数据库问题

    千次阅读 2007-06-05 10:32:00
    我用C#写了一段上传图片到数据库的代码,思路是:把图片上传到指定文件夹,然后把路径发送到数据库中,显示这个图片时,直接从数据库中读取路径来显示图片,网上找了很久,都不行.我用C#写的代码,很简单的几句,上传的功能已...
  • Layui表格内图片渲染以及上传图片到数据库(下) 文献种类:专题技术文献; 开发工具与关键技术:VS 上篇是指layui表格内图片渲染,那么这里是将图上在layui表格内上传到数据库中 一样的先看最终实现效果 1.没有...
  • java实现上传图片存入到数据库,只能用炫酷来形容,感兴趣就下载看看吧
  • 上传图片到数据库的两种方法

    万次阅读 2020-04-13 19:11:59
    不管是用form方式还是ajax方式提交,原理都是在后台新建一个文件夹专门放图片/文件,把文件的名字存到数据库中 通过form提交 html部分:input框type选file,enctype选multipart/form-data(用二进制方式传输) <!...
  • 上传图片到数据库

    2010-07-27 22:50:00
    public partial class UploadImageToSQL : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected int FileLength = 0; //记录文件长度变量 protected ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 68,394
精华内容 27,357
关键字:

web上传图片到数据库