图片上传并显示
给你段代码,是用来在ie上显示图片的(servlet):
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String id = request.getParameter("id");
File file = new File(getServletContext().getRealPath("/")+"out"+"/"+id+".gif");
response.setCharacterEncoding("gb2312");
response.setContentType("doc");
response.setHeader("Content-Disposition", "attachment; filename=" + new String(file.getName().getBytes("gb2312"),"iso8859-1"));
System.out.println(new String(file.getName().getBytes("gb2312"),"gb2312"));
OutputStream output = null;
FileInputStream fis = null;
try
{
output = response.getOutputStream();
fis = new FileInputStream(file);
byte[] b = new byte[1024];
int i = 0;
while((i = fis.read(b))!=-1)
{
output.write(b, 0, i);
}
output.write(b, 0, b.length);
output.flush();
response.flushBuffer();
}
catch(Exception e)
{
System.out.println("Error!");
e.printStackTrace();
}
finally
{
if(fis != null)
{
fis.close();
fis = null;
}
if(output != null)
{
output.close();
output = null;
}
}
}
这个程序的功能是根据传入的文件名(id),来为浏览器返回图片流,显示在<img>标签里
标签的格式写成如下:
<img src="http://localhost:8080/app/preview?id=111 "/><br/>
显示的是111.gif这个图片
你上面的问题:
1.我觉得你的第二个办法是对的,我们也是这样做的,需要的是把数据库的记录id号传进servlet,然后读取这条记录中的路径信息,生成流以后返回就是了
关于上传文件的问题,我记得java中应该专门有个负责文件上传的类,你调用就行了,上传后存储在指定的目录里,以实体文件的形式存放
你可以参考这个:
http://blog.csdn.net/arielxp/archive/2004/09/28/119592.aspx
回复:
1.是的,在response中写入流就行了
2.是发到servlet中的,我们一般都是写成servlet,短小精悍,使用起来方便,struts应该也可以,只是我没有试过,恩,你理解的很对
❷ ASP制作上传图片并显示图片
首先我们先来做首熟悉一下将要使用的对象方法。我们用来获取上一个页面传递过来的数据一般是使用Request对象。同样的,我们也可以使用Request对象来获取上传上来的文件数据,使用的方法是Request.BinaryRead()。而我们要从数据库中读出来图片的数据显示到网页上面要用到的方法是:
Request.BinaryWrite()。在我们得到了图片的数据,要保存到数据库中的时候,不可以直接使用Insert语句对数据库进行操作,而是要使用ADO的AppendChunk方法,同样的,读出数据库中的图片数据,要使用GetChunk方法。各个方法的具体语法如下:
*Request.BinaryRead语法:
variant=Request.BinaryRead(count)
参数
variant
返回值保存着从客户端读取到数据。
count
指明要从客户端读取的数据量大小,这个值小于或者等于使用方法Request.TotalBytes得到的数据量。
*Request.BinaryWrite语法:
Request.BinaryWritedata
参数
data
要写入到客户端浏览器中的数据包。
*Request.TotalBytes语法:
variant=Request.TotalBytes
参数
variant
返回从客户端读取到数据量的字节数。
*AppendChunk语法
将数据追加到大型文本、二进制数据Field或Parameter对象。
object.AppendChunkData
参数
objectField或Parameter对象
Data变体型,包含追加到对象中的数据。
说明
使用Field或Parameter对象的AppendChunk方法可将长二进制或字符数
据填写到对象中。在系统内存让胡掘有限的情况下,可以使用AppendChunk方法对长整型值进行部分而非全部的操作。
*GetChunk语法
返回大型文本或二进制数据Field对象的全部或部分内容。
variable=field.GetChunk(Size)
返回值
返回变体型。
参数
Size长整型表达式,等于所要检索的字节或字符数。
说明
使用Field对象的GetChunk方法检索其部分或全部长二进制或字符数据。在系统内存有限的情况下,可使用GetChunk方法处理部分而非全部的长整型值。
GetChunk调用返回的数据将赋给“变量”。如果Size大于剩余的数据,则
GetChunk仅返回剩余的数据而无需用空白填充“变量”。如果字段为空,则
GetChunk方法返回Null。
每个后续的GetChunk调用将检索从前一次GetChunk调用停止处开始的数据。但是,如果从一个字段检索数据然后在当前记录中设置或读取另一个字段的值,ADO将认为已从第一个字段中检索出数据。如果在第一个字段上再次调用GetChunk方法,ADO将把调用解释为新的GetChunk操作并从记录的起始处开始读取。如果其他Recordset对象不是首个Recordset对象的副本,则访问其中的字段不会破坏GetChunk操作。
如果Field对象的Attributes属性中的adFldLong位设置为True,则可以对该字段使用GetChunk方法。
如果在Field对象上使用Getchunk方法时没有当前记录,将产生错误3021(无当前记录)。
接下来,我们就要来设计我们的数据库坦核了,作为测试我们的数据库结构如下(access2000):
字段名称 类型 描述
id 自动编号 主键值
imgOLE对象 用来保存图片数据
对于在MSsqlServer7中,对应的结构如下:
字段名称 类型 描述
id int(Identity) 主键值
img image 用来保存图片数据
现在开始正式编写我们的纯ASP代码上传部分了,首先,我们有一个提供给用户的上传界面,可以让用户选择要上传的图片。代码如下
(upload.htm):
<html>
<body>
<center>
<form name="mainForm" enctype="multipart/form-data" action="process.asp" method=post>
<inputtype=filename=mefile><br>
<inputtype=submitname=okvalue="OK">
</form>
</center>
</body>
</html>
❸ asp上传图片并显示的代码
<html>
<head>
<meta http-equiv="陆中Content-Type" content="text/html; charset=utf-8">
<script language=javascript src="dialog.js"></script>
<script language="javascript">
document.write ("<link href='../language/zh-cn.css' type='text/css' rel='stylesheet'>");
document.write ("<link href='../dialog/dialog.css' type='text/css'毁孝 rel='stylesheet'>");
var sAction = "INSERT";
var sTitle = "上早余山传图片";
var oControl;
var oSeletion;
var sRangeType;
var sFromUrl = "http://";
var sAlt = "";
var sBorder = "0";
var sBorderColor = "";
var sFilter = "";
var sAlign = "";
var sWidth = "";
var sHeight = "";
var sVSpace = "";
var sHSpace = "";
var sSLTUrl = "";
var sCheckFlag = "file";
document.write("<title>上传图片</title>");
function InitDocument(){
d_fromurl.value = sFromUrl;
}
function RadioClick(what){
if (what=="url"){
d_checkfromfile.checked=false;
d_fromurl.disabled=false;
d_checkfromurl.checked=true;
d_file.myform.uploadfile.disabled=true;
}else{
d_checkfromurl.checked=false;
d_file.myform.uploadfile.disabled=false;
d_checkfromfile.checked=true;
d_fromurl.disabled=true;
}
}
function UploadLoaded(){
RadioClick(sCheckFlag);
}
function UploadError(sErrDesc){
AbleItems();
RadioClick('file');
divProcessing.style.display="none";
try {
BaseAlert(d_file.myform.uploadfile,eval(sErrDesc));
}
catch(e){}
}
function UploadSaved(sPathFileName, sPathFileName_s){
d_fromurl.value = sPathFileName;
sSLTUrl = sPathFileName_s;
ReturnValue();
}
function ReturnValue(){
sFromUrl = d_fromurl.value;
if (sFromUrl==""){
window.returnValue = null;}
else {
window.returnValue = sFromUrl;
}
window.close();
}
function ok(){
if (d_checkfromurl.checked){
ReturnValue();
}else{
if (!d_file.CheckUploadForm()) return false;
DisableItems();
divProcessing.style.display="";
d_file.myform.submit();
}
}
function DisableItems(){
d_checkfromfile.disabled=true;
d_checkfromurl.disabled=true;
d_fromurl.disabled=true;
Ok.disabled=true;
}
function AbleItems(){
d_checkfromfile.disabled=false;
d_checkfromurl.disabled=false;
d_fromurl.disabled=false;
Ok.disabled=false;
}
function doPreview(){
var url;
if (d_checkfromurl.checked){
url = d_fromurl.value;
}else{
url = d_file.document.myform.uploadfile.value;
}
if (url){
imgPreview.src = url;
setPreview()
}else{
tdPreview.innerHTML = "";
}
}
function setPreview(){
var width = imgPreview.width;
var height = imgPreview.height;
if (imgPreview.src){
var boxWidth = tdPreview.offsetWidth;
var boxHeight = tdPreview.offsetHeight;
if ((width>boxWidth)||(height>boxHeight)){
var nw = boxWidth/width;
var nh = boxHeight/height;
if (nw>nh){
height = boxHeight;
width = width*nh;
}else{
width = boxWidth;
height = height*nw;
}
}
tdPreview.innerHTML = "<img border=0 src='"+imgPreview.src+"' width='"+width+"' height='"+height+"'>";
tdPreviewSize.innerHTML = imgPreview.width+" * "+imgPreview.height;
}
}
</script>
<style type="text/css">
<!--
body {
margin-left: 3px;
margin-top: 3px;
margin-right: 3px;
margin-bottom: 3px;
}
-->
</style>
<body onLoad="InitDocument()">
<table width="100%" border=0 align=center cellpadding=0 cellspacing=5>
<tr>
<td><table border=0 cellpadding=0 cellspacing=0 align=center width="100%">
<tr>
<td><fieldset>
<legend><span lang=DlgImgSource>图片来源</span></legend>
<table border=0 cellpadding=5 cellspacing=0 width="100%">
<tr>
<td><table border=0 cellpadding=0 cellspacing=2 width="100%">
<tr>
<td noWrap width="20%"><input type=radio id="d_checkfromfile" value="1" onClick="RadioClick('file')">
<label for=d_checkfromfile><span lang=DlgFromFile>上传</span></label>
:</td>
<td noWrap width="80%"><Script Language=JavaScript>
document.write("<iframe id=d_file frameborder=0 src='asp/upload.asp?type=image&style=coolblue&language=zh-cn' width='100%' height='22' scrolling=no></iframe>");
</Script>
</td>
</tr>
<tr>
<td noWrap width="20%"><input type=radio id="d_checkfromurl" value="1" onClick="RadioClick('url')">
<label for=d_checkfromurl><span lang=DlgFromUrl>网络</span></label>
:</td>
<td noWrap width="80%"><input type=text id="d_fromurl" style="width:100%" size=30 value=""></td>
</tr>
</table></td>
</tr>
</table>
</fieldset></td>
</tr>
<tr>
<td height=5></td>
</tr>
<tr>
<td noWrap align=right colspan=2><input type=button id=btnPreivew lang=DlgImgPreview onClick="doPreview()" value="预览">
<input type=submit value='确定' id=Ok onClick="ok()" lang=DlgBtnOK>
<input type=button value='取消' onClick="window.close();" lang=DlgBtnCancel></td>
</tr>
<tr>
<td><fieldset style="height:100%">
<legend><span lang=DlgImgPreview>预览</span></legend>
<table border=0 cellpadding=0 cellspacing=5 width="100%" height="200" valign=top>
<tr>
<td bgcolor=#FFFFFF align=center valign=middle id=tdPreview height="100%"></td>
</tr>
<tr>
<td align=center id=tdPreviewSize></td>
</tr>
</table>
</fieldset></td>
</tr>
</table></td>
</tr>
</table>
<div id=divProcessing style="width:200px;height:30px;position:absolute;left:70px;top:100px;display:none">
<table border=0 cellpadding=0 cellspacing=1 bgcolor="#000000" width="100%" height="100%">
<tr>
<td bgcolor=#3A6EA5><marquee align="middle" behavior="alternate" scrollamount="5">
<font color=#FFFFFF><span lang=DlgComUploading></span></font>
</marquee></td>
</tr>
</table>
</div>
<img id=imgPreview src='' border=0 style="visibility:hidden" onload="setPreview()">
</body>
</html> 以上是其中的上传图片查看页面 你去网络上找一下eWebEditor编辑器,这个就可以解决你想要的效果。如有不明白可以直接再问!
❹ php实现上传图片到数据库并显示输出的方法
本文实例讲述了PHP实现上传图片到数据库并显示输出的方法。分享给大家供大家参考,具体如下:
1.
创建数据表
CREATE
TABLE
ccs_image
(
id
int(4)
unsigned
NOT
NULL
auto_increment,
description
varchar(250)
default
NULL,
bin_data
longblob,
filename
varchar(50)
default
NULL,
filesize
varchar(50)
default
NULL,
filetype
varchar(50)
default
NULL,
PRIMARY
KEY
(id)
)engine=myisam
DEFAULT
charset=utf8
2.
用于上传图片到服务器的页面
upimage.html
<!doctype
html>
<html
lang="en">
<head>
<meta
charset="UTF-8">
<meta
name="viewport"
content="width=device-width,
user-scalable=no,
initial-scale=1.0,
maximum-scale=1.0,
minimum-scale=1.0">
<meta
http-equiv="X-UA-Compatible"
content="ie=edge">
<style
type="text/css">
*{margin:
1%}
</style>
<title>Document</title>
</head>
<body>
<form
method="post"
action="upimage.php"
enctype="multipart/form-data">
描述:
<input
type="text"
name="form_description"
size="40">
<input
type="hidden"
name="MAX_FILE_SIZE"
value="1000000">
<br>
上传文件到数据库:
<input
type="file"
name="form_data"
size="40"><br>
<input
type="submit"
name="submit"
value="submit">
</form>
</body>
</html>
3.
处理图片上传的php
upimage.php
<?php
if
(isset($_POST['submit']))
{
$form_description
=
$_POST['form_description'];
$form_data_name
=
$_FILES['form_data']['name'];
$form_data_size
=
$_FILES['form_data']['size'];
$form_data_type
=
$_FILES['form_data']['type'];
$form_data
=
$_FILES['form_data']['tmp_name'];
$dsn
=
'mysql:dbname=test;host=localhost';
$pdo
=
new
PDO($dsn,
'root',
'root');
$data
=
addslashes(fread(fopen($form_data,
"r"),
filesize($form_data)));
//echo
"mysqlPicture=".$data;
$result
=
$pdo->query("INSERT
INTO
ccs_image
(description,bin_data,filename,filesize,filetype)
VALUES
('$form_description','$data','$form_data_name','$form_data_size','$form_data_type')");
if
($result)
{
echo
"图片已存储到数据库";
}
else
{
echo
"请求失败,请重试";
注:图片是以二进制blob形式存进数据库的,像这样
4.
显示图片的php
getimage.php
<?php
$id
=2;//
$_GET['id'];
为简洁,直接将id写上了,正常应该是通过用户填入的id获取的
$dsn='mysql:dbname=test;host=localhost';
$pdo=new
PDO($dsn,'root','root');
$query
=
"select
bin_data,filetype
from
ccs_image
where
id=2";
$result
=
$pdo->query($query);
$result=$result->fetchAll(2);
//
var_mp($result);
$data
=
$result[0]['bin_data'];
$type
=
$result[0]['filetype'];
Header(
"Content-type:
$type");
echo
$data;
到浏览器查看已经上传的图片,看是否可以显示
是没有问题的,证明图片已经以二进制的形式存储到数据库了
更多关于PHP相关内容感兴趣的读者可查看本站专题:《php+mysql数据库操作入门教程》、《php+mysqli数据库程序设计技巧总结》、《php面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《php字符串(string)用法总结》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
您可能感兴趣的文章:php实现上传图片保存到数据库的方法php上传图片存入数据库示例分享php上传图片到指定位置路径保存到数据库的具体实现php中如何将图片储存在数据库里php下将图片以二进制存入mysql数据库中并显示的实现代码php
从数据库提取二进制图片的处理代码php将图片保存入mysql数据库失败的解决方法php将图片文件转换成二进制输出的方法php图片的二进制转换实现方法
❺ .net如何上传图片并且显示在页面上
1.网站根目录下新建一个 文件夹 UploadFiles
//上传文件按钮
protected void btnUpload_Click(object sender, EventArgs e)
{
//定义保存路径
string savePath = @"~/UploadFiles";
fudTest 是控件id
//上传文件
if (fudTest.HasFile)
{
try
{
fudTest.SaveAs(Server.MapPath(savePath) + "\\" + fudTest.FileName);
//可以插入数据
Image1.ImageUrl = "~/UploadFiles/" + fudTest.FileName;
}
catch (Exception ex)
{
lblerror.Text = "发生错误:" + ex.Message.ToString();
}
}
else
{
lblMessage.Text = "没有选择要上传的文件!";
}
}
❻ jsp+servlet 上传图片并显示出来
其实你这个挡也显示图片其实很简单的,
你的需求无非是两个
1.servlet上传文件(图片)
2.点击 浏览 图标,然后选择图片文件,然后就可以在页面中的某个地方看到图片
是这两个需求么?
首先说第二个吧。
你上传图片之后,就马上触发js函数,内容为
var PicPath = document.getElementById("yourfile").value;
document.getElementById("yourDiv").innerHTML="<IMG src="+PicPath+"/>";
OK了
第一个嘛就无所谓说了,不过我还是贴一个代码吧,
public void upLoadFile(HttpServletRequest request, HttpServletResponse response) {
PrintWriter out = null;
response.setCharacterEncoding("UTF-8");
//实例化文件工厂
FileItemFactory factory = new DiskFileItemFactory();
//配置上传组件ServletFileUpload
ServletFileUpload upload = new ServletFileUpload(factory);
try {
out = response.getWriter();
//从request得到所有上传域的列表
List<FileItem> list = upload.parseRequest(request);
for (FileItem item : list) {
//isFormField判断一个item类对象封装的是一个普通的表单字段还是文件表单字段。
// 如果item是文件域,则做出如下处理:
if (!item.isFormField()) {
//上传文件域的Name
String fileName = item.getName();
//截取扩展名
int idx = fileName.lastIndexOf(".");
String extension = fileName.substring(idx);
//获取文件名
String name = new Date().getTime() + extension;
//得到文件夹的物理路径
String path = this.getServletContext().getRealPath("\\upload");
//创建一个File
File file = new File(path + "\\" + name);
FileOutputStream o = new FileOutputStream(file);
InputStream in = item.getInputStream();
try {
LoadProcessServlet.process = 0;
LoadProcessServlet.total = 100;
LoadProcessServlet.isEnd = false;
LoadProcessServlet.total = item.getSize();
byte b[] = new byte[1024];
int n;
while ((n = in.read(b)) != -1) {
LoadProcessServlet.process+=n;
o.write(b, 0, n);
System.out.println("实际:"+LoadProcessServlet.process);
}
} catch (Exception e) {
e.printStackTrace();
}finally{
LoadProcessServlet.isEnd = true;
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
❼ 怎样实现图片文件的上传与显示
用FileUpload控件
if (FileUpload1.HasFile)//判断是否存在
{
string name = FileUpload1.FileName;//火的文件名
string type = name.Substring(name.LastIndexOf(".") + 1).ToLower();//获得文件类型
if (type == "jpg" || type == "bmp")//判断文件类型
{
string dt = DateTime.Now.ToString("yyMMddhhmmss");//随机文件类型
string savename = dt + "." + type; //要保存的名字
string path = "photo"+"\\" + savename;//路径
try
{
//再这里执行一个SQL语句,就是那文件名和相对路径插入到数据库
FileUpload1.SaveAs(Server.MapPath("photo")+"\\"+savename);
Response.Write("<script language='javascript'>alert('上传文件成功!');</script>");
}
catch
{
Response.Write("<script>alert('失败')</script>");
}
}
else
{
Response.Write("<script>alert('文件格式不正确')</script>");
}
}
else
{
Response.Write("<script>alert('没有文件')</script>");
}
显示嘛简单的,用<img> ,src=数据库中那个路径就行了
❽ MVC上传图片并显示怎么做呢,最好有demo ,我已经写出一部分但是后台不太会
上传图片前台直接可以用<input type="file">标签来实现,后台接收到文件并保存下来,想要如何处理都可以。
public String SaveFile(MultipartFile imgFile, HttpServletRequest req){
if(!imgFile.isEmpty()) {
try {
//获得后台的真实路径
String realpath=req.getSession().getServletContext().getRealPath("/resource/images");
String pathString=realpath+"/"+imgFile.getOriginalFilename();
System.out.println(pathString);
//在后台保存图片
imgFile.transferTo(new File(pathString));
return pathString;//返回图片存储路径
} catch (IllegalStateException e) {
e.printStackTrace();
}
return null;
}
❾ mvc视图中怎么上传图片并显示
如果只是上传的话那太容易了,如果还要显示那就难了,因为要显示的话就不能只向服务器提交一次请求,必须异步提交。下面的例子是我亲自写的,异步提交上传图片并预览。全部代码都在。
返回到前台页面的JSON格式对象是以类的对象。
publicclassReturnImage
{
publicstringbig{get;set;}
publicstringsmall{get;set;}
publicstringisSuccessfull{get;set;}
publicstringmessage{get;set;}
}
对于上传和生成缩略图,请自行完成,以下是ASP.NETMVC的例子。
publicclassHomeController:Controller
{
//
//GET:/Home/
publicActionResultIndex()
{
returnView();
}
///<summary>
///上传图片
///</summary>
///<returns></returns>
publicActionResultUploadImage()
{
//定义错误消息
JsonResultmsg=newJsonResult();
try
{
//接受上传文件
HttpPostedFileBasepostFile=Request.Files["upImage"];
if(postFile!=null)
{
DateTimetime=DateTime.Now;
//获取上传目录转换为物理路径
stringuploadPath=Server.MapPath("~/UploadFiles/"+time.Year+"/"+time.ToString("yyyyMMdd")+"/");
//文件名
stringfileName=time.ToString("yyyyMMddHHmmssfff");
//后缀名称
stringfiletrype=System.IO.Path.GetExtension(postFile.FileName);
//获取文件大小
longcontentLength=postFile.ContentLength;
//文件不能大于2M
if(contentLength<=1024*2048)
{
//如果不存在path目录
if(!Directory.Exists(uploadPath))
{
//那么就创建它
Directory.CreateDirectory(uploadPath);
}
//保存文件的物理路径
stringsaveFile=uploadPath+fileName+"_big"+filetrype;
try
{
//保存文件
postFile.SaveAs(saveFile);
//保存缩略图的物理路径
stringsmall=uploadPath+fileName+"_small"+filetrype;
MakeThumbnail(saveFile,small,320,240,"W");
ReturnImageimage=newReturnImage();
image.big="/UploadFiles/"+time.Year+"/"+time.ToString("yyyyMMdd")+"/"+fileName+"_big"+filetrype;
image.small="/UploadFiles/"+time.Year+"/"+time.ToString("yyyyMMdd")+"/"+fileName+"_small"+filetrype;
msg=Json(image);
}
catch
{
msg=Json("上传失败");
}
}
else
{
msg=Json("文件大小超过限制要求");
}
}
else
{
msg=Json("请选择文件");
}
}
catch(Exceptione)
{
;
}
msg.ContentType="text/html";
returnmsg;
}
///<summary>
由于回答超过最大限制,///生成缩略图的代码请向我索取
❿ java实现图片上传至服务器并显示,如何做希望要具体的代码实现
很简单。
可以手写IO读写(有点麻烦)。
怕麻烦的话使用FileUpload组件 在servlet里doPost嵌入一下代码
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException{
response.setContentType("text/html;charset=gb2312");
PrintWriter out=response.getWriter();
//设置保存上传文件的目录
String uploadDir =getServletContext().getRealPath("/up");
System.out.println(uploadDir);
if (uploadDir == null)
{
out.println("无法访问存储目录!");
return;
}
//根据路径创建一个文件
File fUploadDir = new File(uploadDir);
if(!fUploadDir.exists()){
if(!fUploadDir.mkdir())//如果UP目录不存在 创建一个 不能创建输出...
{
out.println("无法创建存储目录!");
return;
}
}
if (!DiskFileUpload.isMultipartContent(request))
{
out.println("只能处理multipart/form-data类型的数据!");
return ;
}
DiskFileUpload fu = new DiskFileUpload();
//最多上传200M数据
fu.setSizeMax(1024 * 1024 * 200);
//超过1M的字段数据采用临时文件缓存
fu.setSizeThreshold(1024 * 1024);
//采用默认的临时文件存储位置
//fu.setRepositoryPath(...);
//设置上传的普通字段的名称和文件字段的文件名所采用的字符集编码
fu.setHeaderEncoding("gb2312");
//得到所有表单字段对象的集合
List fileItems = null;
try
{
fileItems = fu.parseRequest(request);//解析request对象中上传的文件
}
catch (FileUploadException e)
{
out.println("解析数据时出现如下问题:");
e.printStackTrace(out);
return;
}
//处理每个表单字段
Iterator i = fileItems.iterator();
while (i.hasNext())
{
FileItem fi = (FileItem) i.next();
if (fi.isFormField()){
String content = fi.getString("GB2312");
String fieldName = fi.getFieldName();
request.setAttribute(fieldName,content);
}else{
try
{
String pathSrc = fi.getName();
if(pathSrc.trim().equals("")){
continue;
}
int start = pathSrc.lastIndexOf('\\');
String fileName = pathSrc.substring(start + 1);
File pathDest = new File(uploadDir, fileName);
fi.write(pathDest);
String fieldName = fi.getFieldName();
request.setAttribute(fieldName, fileName);
}catch (Exception e){
out.println("存储文件时出现如下问题:");
e.printStackTrace(out);
return;
}
finally //总是立即删除保存表单字段内容的临时文件
{
fi.delete();
}
}
}
注意 JSP页面的form要加enctype="multipart/form-data" 属性, 提交的时候要向服务器说明一下 此页面包含文件。
如果 还是麻烦,干脆使用Struts 的上传组件 他对FileUpload又做了封装,使用起来更傻瓜化,很容易掌握。
-----------------------------
以上回答,如有不明白可以联系我。