最近一起在忙文件上传这一功能模块,文件上传的部份到时蛮简单的 但是要成功的接收表单的参数 却不是很容易的一件事 表单接受参数总是空值 后来接收的是乱码 好不容易总算是成功了
所以拿出来和大家分享一下 大家以后在做这一块的时候也能少些麻烦 有关可以借鉴的地方 希望自己能叙述清楚
高手轻拍 我也是菜鸟级人物………………
下面是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表单中实现了同时上传多个文件和文本信息的功能。这种实现方式不仅提高了用户的使用体验,也方便了开发者对上传数据的管理和处理。在实际应用中,还可以进一步扩展该功能,例如...
总结来说,实现文件上传与下载功能,我们需要掌握HTTP协议、J2EE的Servlet API、文件处理和流操作等技术,同时考虑性能和安全性。提供的"FileUpLoadAndDownLoad"源码应涵盖以上所有环节,包括HTML表单、Servlet处理...
以上就是使用JSP实现文件上传和下载功能的主要步骤和知识点,结合Struts框架可以进一步提高代码的可维护性和扩展性。在实际开发中,还需要考虑性能优化、用户体验等因素,以提供稳定、高效的服务。
通过以上步骤,你可以实现一个基本的文件和图片上传功能。在实际项目中,你可能还需要添加更多功能,如进度条显示、上传队列管理、预览功能等。文件`0302_WebWork_UploadFiles`可能包含实现这些功能的示例代码,你...
本文将详细介绍如何在Android中实现表单上传文件,尤其是图片文件。 首先,理解表单上传的基本原理。在Web开发中,HTML的`<form>`标签可以设置`enctype="multipart/form-data"`来支持文件上传。但在Android中,由于...
在网页设计中,文件上传功能是一项基础且重要的交互元素,特别是在需要用户提交文件,如图片、文档或音频等场景下。"文件上传表单样式"是优化用户体验的关键,旨在使这个过程更加美观和用户友好。在这个主题下,我们...
综合以上,本项目的“上传文件验证表单”通过Bootstrap实现美观的页面布局,借助Webuploader实现文件上传功能,并结合表单验证技术保证了用户输入数据的有效性。这样的页面对于任何需要用户上传文件的Web应用都是一...
总的来说,使用JavaScript和jQuery实现文件上传功能,不仅可以提供与Flash相当的功能,而且更加现代、灵活且安全。结合HTML5的新特性,如FormData和Progress事件,开发者可以构建出高性能、用户体验良好的文件上传...
在Java Web开发中,表单上传是常见的功能之一,尤其是当用户需要上传多个文件时。本文将详细讲解如何实现这个功能,主要涉及HTML表单、Servlet、MVC框架(如Spring MVC)以及文件处理的相关知识。 1. HTML表单设置...
在.NET框架中,WebAPI是构建RESTful服务的重要工具,常用于创建HTTP服务,使得客户端(如网页、移动应用)可以方便地与服务器交互数据。本文将深入探讨如何在WebAPI中...希望这些信息能帮助你理解和实现文件上传功能。
本篇将详细探讨如何实现多文件上传表单的功能,同时也会涉及到一些相关的源码和工具使用。 首先,让我们从基础开始。Spring MVC是Spring框架的一部分,用于处理HTTP请求和响应,提供了一个强大的模型-视图-控制器...
- 如果应用需要适应不同设备,还需要确保文件上传功能在手机、平板等移动设备上也能正常工作,这就需要考虑响应式设计和触摸友好的交互。 5. **服务器端存储**: - 服务器接收到文件后,需要决定如何存储。这可能...
在这个特定的场景中,我们关注的是如何使用Struts来实现文件的上传和下载功能。这个功能对于任何Web应用来说都是非常重要的,因为它允许用户交互地处理数据和资源。 首先,我们需要理解文件上传的基本流程。在...
SSH整合是Java开发中一...文件上传功能的实现则涉及到前端表单提交、后端文件处理、大小检查以及数据库操作等多个环节,充分展示了SSH框架的灵活性和实用性。在实际项目中,这样的整合可以提高开发效率,降低维护成本。
总结来说,实现JSP文件上传功能的关键在于理解HTTP协议中文件上传的数据格式,正确设置HTML表单,以及在服务器端正确地解析和处理上传的数据。通过上述步骤,我们可以实现一个基本的文件上传功能,但实际应用中可能...
在Web开发中,JSP(JavaServer Pages)...总的来说,JSP多文件上传涉及前后端的协作,包括HTML表单设计、JSP与Servlet交互、文件解析、存储、错误处理和安全性等多个方面。正确实现这一功能需要对Web开发有深入的理解。
总的来说,Spring Boot提供了一种简洁的方式来实现文件上传和下载功能,结合Thymeleaf和其他Spring组件,可以快速构建出功能完善的Web应用。通过合理的接口设计和实现,我们可以实现可扩展且易于维护的文件存储服务...
2. `EXT表单组件`:包含EXT的JavaScript代码,定义了文件上传的表单结构和样式。 3. `Java服务端代码`:处理文件上传的Servlet或Controller,负责接收请求、解析文件并保存到服务器。 4. `CSS样式文件`:定义了上传...
Flash在过去的网页开发中被广泛应用于多媒体交互和富互联网应用(RIA),其中包括文件上传功能,因为它可以提供比HTML更灵活的用户界面和更好的文件处理能力。 在Web应用程序中,传统的HTML表单仅支持单个文件上传...
采用前后端分离的方式进行开发,实现了几种常用的文件上传功能。 前端采用 vue.js + plupload + element-ui 实现了文件在浏览器端的发送, 后端采用 spring boot + spring + spring mvc + mybatis 实现了文件在服务器...