关于Jsp页面上传图片和缩略图查看

关于Jsp页面上传图片和缩略图查看

主要分为两部分:

第一,图片的上传,图片保存在ftp服务器里(也可以是对应的项目文件夹下需要相对应的修改)

第二,上传后,我们通过点击页面的缩略图查看原图

 

关于图片的上传操作:

1.在附件上传页面引入验证js:

<script type="text/javascript" src="../check.js"></script>//导入验证js

 然后在我们的form表单中修改属性,新增附近上传元素

<s:form name="form1" action="/instancyCase/caseInfo!saveCaseInfo.action" method="post" enctype="multipart/form-data">

      <tr>

            <td class="table_rleft">附件:</td>

           <td  colspan="3">

           <input type="file" name="fj" id="fj"/>

           <span style="font-size: 12px;color: red">

           <s:property value="error"/> </span>

        </td>

     </tr>

     <input type="submit" id="IsSubmit" class="button" name="update" value="  保存  " οnmοuseup="return UpCheck('fj')" />

</s:form>

以上代码可直接拷到jsp中使用,部分属性改一下就行了。

2、Action层:

附件涉及的变量:

private String error;                       //错误信息提示属性

private TblSpisCorpInstancyCaseFj ruleFj;   //自定义的附近pojo

private File fj;                               //附件对象


 

保存或者更新附件信息的方法体内填入以下代码:

if (fj != null){

    String check = CheckFile.getFileByFile(fj);                    //主要是验证附件的格式,比如:jpg .gif .png .bmp等格式

    if (check!=null&&!"".equals(check)) {

    	String tem_path = Util.FTP_FOLDER+File.separator+Util.WARD_PHOTO;

    	String xdpath = Util.FTP_FOLDER+File.separator+Util.WARD_PHOTO;



    	String file_Name = UploadFTP.copyFTP( this.getFj(),tem_path,"jpg",(sessionUser.getId()).toString());

    	ruleFj.setCorpInstancyCaseFjPath(xdpath + File.separator + (sessionUser.getId()).toString()+File.separator + file_Name );

    	ruleFj.setCorpInstancyCaseFjName(file_Name);

    	ruleFj.setCreateTime(new Timestamp(System.currentTimeMillis()));

    	ruleFj.setCorpInstancyCaseFjType("2");

   }else{

    	this.setCaseObj(caseObj);

    	error= "文件格式不对";

    	return addCaseInfo();

  }

}      

缩略图查看原图
 需要在Jsp查看附件页面新增:

<tr>

    <td class="table_rleft">附件:</td>

       <td  colspan="3">
            <s:if test=”ruleFj.corpInstancyCaseFjPath!=null”>

             <img src="<%=basePath%>/JpgShow.jsp?path=${ruleFj.corpInstancyCaseFjPath }" width="100" height="75"/>

            </s:if>

            <s:else>

               暂无附件信息

            </s:else>

        </td>

</tr>


下面是附件的相关描述

在页面对图片的后缀名做验证(具体方法实现内容见附件1 check.js

//CheckFile.getFileByFile用于判定附件的内容是否符合规定的格式,如果不是,返回添加或更新jsp页面重新上传,具体方法实现内容见附件2 CheckFile.java

// UploadFTP.copyFTP用于生成在ftp服务器上该附件唯一的文件名,具体方法实现内容见附件3UploadFTP.java

//拼凑出附件在ftp服务器中的路径子串,设置到附件对象的path属性中,这个属性要在后边的jsp查看该附件时使用

JpgShow.jspftp服务器上的图片处理成缩略图在img标签中显示,具体方法实现见附件4JpgShow.jsp

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现JSP页面上传图片并保存到数据库中的步骤如下: 1. 创建一个带有文件上传表单的JSP页面,例如: ```html <form action="upload.jsp" method="post" enctype="multipart/form-data"> <input type="file" name="image"> <input type="submit" value="上传"> </form> ``` 2. 在上传的JSP页面中,使用Apache Commons FileUpload或Servlet 3.0以上版本提供的API来处理文件上传操作。例如,使用Apache Commons FileUpload可以通过以下方式将上传的文件保存在服务器上: ```java List<FileItem> items = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request); for (FileItem item : items) { if (!item.isFormField()) { String fileName = new File(item.getName()).getName(); InputStream fileContent = item.getInputStream(); // 处理文件上传操作 } } ``` 3. 在处理文件上传操作时,将文件内容转换为字节数组,并将字节数组保存到数据库中。例如: ```java byte[] imageData = IOUtils.toByteArray(fileContent); // 将字节数组保存到数据库中 ``` 4. 在保存到数据库之前,需要先连接数据库并打开连接。例如: ```java Class.forName("com.mysql.jdbc.Driver"); Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "password"); ``` 5. 将字节数组保存到数据库中。这里使用PreparedStatement进行参数化查询,将字节数组作为Blob类型的参数插入到数据库中。例如: ```java PreparedStatement statement = connection.prepareStatement("INSERT INTO images (name, data) VALUES (?, ?)"); statement.setString(1, fileName); statement.setBlob(2, new ByteArrayInputStream(imageData)); statement.executeUpdate(); ``` 6. 处理完文件上传和保存到数据库后,需要关闭连接。例如: ```java statement.close(); connection.close(); ``` 以上就是JSP页面上传图片并保存到数据库中的实现步骤。需要注意的是,上传的图片需要进行大小、格式等验证,避免恶意文件上传。同时,需要在web.xml文件中配置multipart-config元素,指定最大文件大小和请求大小限制。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值