在jsp中,通过file文本得到图片信息,怎么将图片上传至服务器,你这个是怎么实现 的,可以分享一下吗,谢谢

 我来答
songlei1241
2011-07-27
知道答主
回答量:11
采纳率:0%
帮助的人:3.5万
展开全部
这是jsp页面
<%@ page language="java" contentType="text/html; charset=gbk" pageEncoding="gbk"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
request.setAttribute("basePath", basePath);
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk">
<title>北京缔凡思信息技术有限公司</title>
<link type="text/css" rel="stylesheet" href="${basePath}backStage/css/back.css"/>
<script type="text/javascript">
function messages(){
var title=document.messForm.title.value;
var messageContext=document.messForm.messageContext.value;
var date=document.messForm.date.value;
var file=document.messForm.file.value;
if(title==""){
alert("新闻主题不能为空");
document.messForm.title.focus();
return false;
}
if(messageContext==""){
alert("新闻内容不能为空");
document.messForm.messageContext.focus();
return false;
}
if(date==""){
alert("新闻发布时间不能为空");
document.messForm.date.focus();
return false;
}
if(file==""){
alert("新闻图片不能为空");
document.messForm.file.focus();
return false;
}
return true;
}
</script>
</head>
<body>
<div id="rigth" style="margin-left: 250px;margin-top: 20px;">
<form action="${basePath}addMess" name="messForm" method="post" enctype="multipart/form-data" >
<table cellpadding="0" cellspacing="0" width="70%">
<tr style="height: 32px; font-size: 16px;">
<th colspan="2">发布最新新闻</th>
</tr>
<tr>
<th width="150">新闻主题</th>
<td width="320">
<textarea name="title" class="textarea" rows="3" cols="40"></textarea>
</td>
</tr>

<tr>
<th>新闻图片</th>
<td><input type="file" name="file" style="margin-left: 25px; width:260px; border: 1px;"/></td>
</tr>
<tr><td colspan="2">
<input class="res" type="reset" value="取消" onclick="window.location.href='${basePath}showMessage';"/>
<input class="sub" disabled="disabled" type="submit" value="发布" onclick="return messages();"/>
</td> </tr> </table>
</form>
</div>
</body>
</html>

然后在servlet中处理:

protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=gbk");
request.setCharacterEncoding("gbk");

SmartUpload su =new SmartUpload();
su.initialize(this.getServletConfig(), request, response);
String realPath = this.getServletContext().getRealPath("");
String path=realPath+"/foreStage/images";//你把图片上传至服务器中的项目的位置,foreStage是我在webContent下的文件夹
su.setAllowedFilesList("bmp,jpg,jpeg,png,gif");

try {
su.upload();
su.save(path);//将文件上传至服务器指定的位置

} catch (SmartUploadException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String filename=su.getFiles().getFile(0).getFileName();//获取上传图片的名字

String title=su.getRequest().getParameter("title");//注意这是接收表单传过来的参数,如果用request.getParameter("title"),值为空,因为jsp把其他的文本给屏蔽掉了 }

我是这样做的,也成功了
来自:求助得到的回答
凤举大名扬8359
2011-07-28 · TA获得超过155个赞
知道答主
回答量:377
采纳率:0%
帮助的人:198万
展开全部
建议用COS组件上传,网上有的,详细找找吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cuijinggui
2011-07-27
知道答主
回答量:32
采纳率:0%
帮助的人:0
展开全部
form中添加enctype="multipart/form-data",后台怎么接,得看你用的什么框架了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式