`
kissjsp
  • 浏览: 1235 次
  • 性别: 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中...希望这些信息能帮助你理解和实现文件上传功能。

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

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

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

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

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

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

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

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

    jsp文件上传功能实现

    总结来说,实现JSP文件上传功能的关键在于理解HTTP协议中文件上传的数据格式,正确设置HTML表单,以及在服务器端正确地解析和处理上传的数据。通过上述步骤,我们可以实现一个基本的文件上传功能,但实际应用中可能...

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

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

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

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

    java实现文件批量上传

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

    flash 实现的多文件上传

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

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

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

Global site tag (gtag.js) - Google Analytics