`
kissjsp
  • 浏览: 1243 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

文件和表单同时上传功能的实现

阅读更多

  最近一起在忙文件上传这一功能模块,文件上传的部份到时蛮简单的    但是要成功的接收表单的参数  却不是很容易的一件事  表单接受参数总是空值    后来接收的是乱码     好不容易总算是成功了 
所以拿出来和大家分享一下    大家以后在做这一块的时候也能少些麻烦  有关可以借鉴的地方   希望自己能叙述清楚  
   高手轻拍   我也是菜鸟级人物………………


下面是word的文档   是我写的一些方法吧  有兴趣的朋友可以下载看下…………

 

addInfo.jsp

uploadimage.jsp

 

<%@ page contentType="text/html;charset=GB18030" language="java" import="java.io.*,java.awt.Image,java.awt.image.*,com.sun.image.codec.jpeg.*,java.sql.*,com.jspsmart.upload.*,java.util.*"%>
<%@ page import="org.apache.commons.dbutils.QueryRunner"%>
<%@ page import="org.apache.commons.dbutils.handlers.BeanListHandler"%>
<%@ page import="cn.wn.demo.DbUtils"%>

<%
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 'uploadimage.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>
    <%
     SmartUpload mySmartUpload =new SmartUpload();
     
     //response.setContentType("text/html;charset=utf-8"); 
     long file_size_max=4000000;   // 图片最大尺寸接近3.8MB
     String fileName2="",ext="",testvar="";
     String url="images/";      //应保证在根目录中有此目录的存在      String url="uploadfile/images/"; 
     //初始化
     mySmartUpload.initialize(pageContext);

     //只允许上载此类文件
     try {
        mySmartUpload.setAllowedFilesList("jpg,gif,png,bmp,JPG,GIF,PNG,BMP");//这个地方是限制文件上传的格式,对于文件 要保证图片能正常的上传
        // 上载文件
        mySmartUpload.upload();
     } catch (Exception e){
      %>
      <SCRIPT language=javascript>
      alert("只允许上传.jpg、.gif、.png、.bmp,.BMP,.JPG,.PNG类型图片文件"); 
      
      window.location='addInfo.jsp';
      </script>
      <%
     }
    try{

    com.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(0);
    if (myFile.isMissing()){%>
    <SCRIPT language=javascript>
    alert("请先选择要上传的文件");
    window.location='addInfo.jsp';
    </script>
    <%}
    else{
      String myFileName=myFile.getFileName(); //取得上载的文件的文件名
      ext= myFile.getFileExt();      //取得后缀名
      int file_size=myFile.getSize();     //取得文件的大小 
      String saveurl="";
      if(file_size<file_size_max){
        //更改文件名,取得当前上传时间的毫秒数值
        Calendar calendar = Calendar.getInstance();
        String filename = String.valueOf(calendar.getTimeInMillis());
        saveurl=request.getRealPath("/")+url;
        saveurl+=myFileName;          //保存路径
        myFile.saveAs(saveurl,mySmartUpload.SAVE_PHYSICAL);
        System.out.println(myFileName);
        
        String FileName = myFileName;
        session.setAttribute("FileName",FileName);
        
        //-----------------------上传完成,开始生成缩略图 -------------------------   
        java.io.File file = new java.io.File(saveurl);        //读入刚才上传的文件
        String newurl=request.getRealPath("/")+url+filename+"_min."+ext;  //新的缩略图保存地址
        Image src = javax.imageio.ImageIO.read(file);                     //构造Image对象
        float tagsize=200;
        int old_w=src.getWidth(null);                                     //得到源图宽
        int old_h=src.getHeight(null);  
        int new_w=0;
        int new_h=0;                            //得到源图长
        int tempsize;
        float tempdouble;
        if(old_w>old_h){
          tempdouble=old_w/tagsize;
        }else{
          tempdouble=old_h/tagsize;
        }
       new_w=Math.round(old_w/tempdouble);
       new_h=Math.round(old_h/tempdouble);    //计算新图长宽
       BufferedImage tag = new BufferedImage(new_w,new_h,BufferedImage.TYPE_INT_RGB);
       tag.getGraphics().drawImage(src,0,0,new_w,new_h,null);       //绘制缩小后的图
       FileOutputStream newimage=new FileOutputStream(newurl);          //输出到文件流
       JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(newimage);      
       encoder.encode(tag);                                               //近JPEG编码
       newimage.close();   
       
       //---------------------------这个地方是重点----------------------------
       //----------------表单的数据输入都是以ISOxxxxxxxxxxxx格式的   但是  我们现在要使用中文的字符   这必然就需要转码
       //----你的项目可能是utf-8形式编码的,这个地方没有问题    其中的gbk不能改成utf-8形式   否则就可能会出现乱码的情况
       //----数据中的编码只要也是utf-8的话  就没有什么问题    这个我也进行过测试的
      
      
       
       String goodsName = mySmartUpload.getRequest().getParameter("goodsName");
       goodsName = new String(goodsName.getBytes(), "GBK");
       System.out.println(goodsName);
       

       String goodsIntroduction = mySmartUpload.getRequest().getParameter("goodsIntroduction");
       goodsIntroduction = new String(goodsIntroduction.getBytes(), "GBK");
       System.out.println(goodsIntroduction);

       String goodsFeature = mySmartUpload.getRequest().getParameter("goodsFeature");
       goodsFeature = new String(goodsFeature.getBytes(), "GBK");
        System.out.println(goodsFeature);


       String goodsSize = mySmartUpload.getRequest().getParameter("goodsSize");
       goodsSize = new String(goodsSize.getBytes(), "GBK");
       System.out.println(goodsSize);
       
       System.out.println("-----------------------这里-----------------------------------");

       String sql = null;
		try {

			QueryRunner qr = DbUtils.getQueryRunner();
			// 为sql赋值,插入语句
			sql = "insert into goods (goodsName,goodsIntroduction,goodsFeature,goodsSize) values(?,?,?,?)";
			String params[] = { goodsName,  FileName, goodsIntroduction, goodsFeature, goodsSize };

			qr.update(sql, params);
			
			//session.invalidate();
		} catch (Exception e) {
			e.printStackTrace();
		}
       
       out.print("<SCRIPT language='javascript'>");
       out.print("alert('上传文件大成功');");
       out.print("window.location='/project/admin/uploadimage.jsp';");
       out.print("</SCRIPT>");
     }
   }

    
   }catch (Exception e){

   e.toString();     //e.printStackTrace();

  }
  %>
  </body>
</html>

 




上面数据操作部分  是自己写的组件  可能大家下载用不起来   因为这个是说明文件上传的   所以部在说了 


要是不明白的大虾   可以邮件给我   459675517@qq.com   大家交流  交流




分享到:
评论

相关推荐

    在一个form表单里同时上传多个文件和文本信息的解决方案

    通过以上步骤,我们成功地在一个form表单中实现了同时上传多个文件和文本信息的功能。这种实现方式不仅提高了用户的使用体验,也方便了开发者对上传数据的管理和处理。在实际应用中,还可以进一步扩展该功能,例如...

    文件的上传与下载功能实现

    总结来说,实现文件上传与下载功能,我们需要掌握HTTP协议、J2EE的Servlet API、文件处理和流操作等技术,同时考虑性能和安全性。提供的"FileUpLoadAndDownLoad"源码应涵盖以上所有环节,包括HTML表单、Servlet处理...

    文件上传及下载功能实现代码

    以上就是使用JSP实现文件上传和下载功能的主要步骤和知识点,结合Struts框架可以进一步提高代码的可维护性和扩展性。在实际开发中,还需要考虑性能优化、用户体验等因素,以提供稳定、高效的服务。

    .NET实现文件上传、图片上传功能

    通过以上步骤,你可以实现一个基本的文件和图片上传功能。在实际项目中,你可能还需要添加更多功能,如进度条显示、上传队列管理、预览功能等。文件`0302_WebWork_UploadFiles`可能包含实现这些功能的示例代码,你...

    Android实现表单上传文件

    本文将详细介绍如何在Android中实现表单上传文件,尤其是图片文件。 首先,理解表单上传的基本原理。在Web开发中,HTML的`&lt;form&gt;`标签可以设置`enctype="multipart/form-data"`来支持文件上传。但在Android中,由于...

    文件上传表单样式

    在网页设计中,文件上传功能是一项基础且重要的交互元素,特别是在需要用户提交文件,如图片、文档或音频等场景下。"文件上传表单样式"是优化用户体验的关键,旨在使这个过程更加美观和用户友好。在这个主题下,我们...

    上传文件验证表单

    综合以上,本项目的“上传文件验证表单”通过Bootstrap实现美观的页面布局,借助Webuploader实现文件上传功能,并结合表单验证技术保证了用户输入数据的有效性。这样的页面对于任何需要用户上传文件的Web应用都是一...

    JS 实现文件上传功能

    总的来说,使用JavaScript和jQuery实现文件上传功能,不仅可以提供与Flash相当的功能,而且更加现代、灵活且安全。结合HTML5的新特性,如FormData和Progress事件,开发者可以构建出高性能、用户体验良好的文件上传...

    JAVA表单上传多个文件 java web form表单上传多个文件.zip_form表单post提交

    在Java Web开发中,表单上传是常见的功能之一,尤其是当用户需要上传多个文件时。本文将详细讲解如何实现这个功能,主要涉及HTML表单、Servlet、MVC框架(如Spring MVC)以及文件处理的相关知识。 1. HTML表单设置...

    .NET webapi实现文件上传功能

    在.NET框架中,WebAPI是构建RESTful服务的重要工具,常用于创建HTTP服务,使得客户端(如网页、移动应用)可以方便地与服务器交互数据。本文将深入探讨如何在WebAPI中...希望这些信息能帮助你理解和实现文件上传功能。

    移动端HTML5实现文件上传功能【附代码】

    随着HTML5的普及,我们可以利用它提供的接口来实现一个不需要额外插件的文件上传功能。本文将介绍如何使用HTML5、JavaScript以及Ajax技术在移动端实现一个简单的图片上传功能。以下是实现该功能所使用的技术和代码...

    SpringMVC之表单提交===③===多文件上传表单

    本篇将详细探讨如何实现多文件上传表单的功能,同时也会涉及到一些相关的源码和工具使用。 首先,让我们从基础开始。Spring MVC是Spring框架的一部分,用于处理HTTP请求和响应,提供了一个强大的模型-视图-控制器...

    实现文件上传,以及表单提交成功的回调函数

    - 如果应用需要适应不同设备,还需要确保文件上传功能在手机、平板等移动设备上也能正常工作,这就需要考虑响应式设计和触摸友好的交互。 5. **服务器端存储**: - 服务器接收到文件后,需要决定如何存储。这可能...

    struts实现的文件上传下载功能

    在这个特定的场景中,我们关注的是如何使用Struts来实现文件的上传和下载功能。这个功能对于任何Web应用来说都是非常重要的,因为它允许用户交互地处理数据和资源。 首先,我们需要理解文件上传的基本流程。在...

    SSH整合并实现文件上传功能

    SSH整合是Java开发中一...文件上传功能的实现则涉及到前端表单提交、后端文件处理、大小检查以及数据库操作等多个环节,充分展示了SSH框架的灵活性和实用性。在实际项目中,这样的整合可以提高开发效率,降低维护成本。

    JSP多文件上传(同时上传)

    在Web开发中,JSP(JavaServer Pages)...总的来说,JSP多文件上传涉及前后端的协作,包括HTML表单设计、JSP与Servlet交互、文件解析、存储、错误处理和安全性等多个方面。正确实现这一功能需要对Web开发有深入的理解。

    基于SpringBoot的文件上传系统,前后端分离,单文件上传,多文件上传,大文件上传,断点续传,文件秒传,图片上传

    采用前后端分离的方式进行开发,实现了几种常用的文件上传功能。 前端采用 vue.js + plupload + element-ui 实现了文件在浏览器端的发送, 后端采用 spring boot + spring + spring mvc + mybatis 实现了文件在服务器...

    SpringBoot实现文件上传和下载.docx

    总的来说,Spring Boot提供了一种简洁的方式来实现文件上传和下载功能,结合Thymeleaf和其他Spring组件,可以快速构建出功能完善的Web应用。通过合理的接口设计和实现,我们可以实现可扩展且易于维护的文件存储服务...

    java实现文件批量上传

    2. `EXT表单组件`:包含EXT的JavaScript代码,定义了文件上传的表单结构和样式。 3. `Java服务端代码`:处理文件上传的Servlet或Controller,负责接收请求、解析文件并保存到服务器。 4. `CSS样式文件`:定义了上传...

    flash 实现的多文件上传

    Flash在过去的网页开发中被广泛应用于多媒体交互和富互联网应用(RIA),其中包括文件上传功能,因为它可以提供比HTML更灵活的用户界面和更好的文件处理能力。 在Web应用程序中,传统的HTML表单仅支持单个文件上传...

Global site tag (gtag.js) - Google Analytics