jsp中图片插入的问题

sushou2009 2009-07-06 09:42:07
我用jsp做的网站,是做商品展示的,我数据库中的商品表中的商品图片一列是String类型的,添加的是照片的名称。我现在想在页面中添加商品的图片的时候直接从电脑里面选的,也就是以前添加图片是添加图片的名称,现在想的是添加照片的地址,我该怎么样做?
...全文
699 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
huxin889 2009-07-08
  • 打赏
  • 举报
回复
学习啊
修改一下昵称 2009-07-07
  • 打赏
  • 举报
回复
要加上ENCTYPE="multipart/form-data
然后通过超链接传值,通过手动提交
var dd=document.getElementById("...").value;
...
...
document.myform.action="InsertDispose.jsp?va=dd&....
document.myform.submit();
sushou2009 2009-07-07
  • 打赏
  • 举报
回复
这是我的代码:
<%@ page language="java"
import="s2jsp.bysj.dao.*,s2jsp.bysj.entity.*,java.io.*,java.awt.Image,java.awt.image.*,com.sun.image.codec.jpeg.*,java.sql.*,com.jspsmart.upload.*,java.util.*"
pageEncoding="gbk"%>
<%@ include file="checkSession.jsp"%>
<html>

<head>
<meta http-equiv="Content-Language" content="zh-cn">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>管理员-添加</title>
<link rel="stylesheet" type="text/css" href="../css/style_admin.css">
<%
request.setCharacterEncoding("gbk");
response.setContentType("text/html;charset=gb2312");
String action = request.getParameter("action");
if (action != null && "save".equals(action)) {
String serialNumber = request.getParameter("serialNumber");
String name = request.getParameter("name");
String brand = request.getParameter("brand");
String model = request.getParameter("model");
String price = request.getParameter("price");

String description = request.getParameter("description");

Product product = new Product();

String image = null;
SmartUpload mySmartUpload = new SmartUpload();
//初始化
mySmartUpload.initialize(pageContext);
try {
//只允许上载此类文件
mySmartUpload.setAllowedFilesList("jpg,gif");
mySmartUpload.upload();
} catch (Exception e) {
%>
<SCRIPT language=javascript>
alert("上传的格式不对");
history.back();
</script>
<%
}
try {
com.jspsmart.upload.File myFile = mySmartUpload.getFiles()
.getFile(0);
if (myFile.isMissing()) {
%>
<SCRIPT language=javascript>
alert("请先选择要上传的文件");
history.back();
</script>
<%
} else {
mySmartUpload.save("/image");
image = myFile.getFileName();

}
} catch (Exception e) {
out.print(e.getMessage());
}

product.setSerialNumber(serialNumber);
product.setName(name);
product.setBrand(brand);
product.setModel(model);
product.setPrice(Double.parseDouble(price));
product.setPicture(image);
product.setDescription(description);

ProductDao productDao = new ProductDao();

int count = productDao.addProduct(product);
if (count > 0)
out
.print("<script type='text/javascript'>alert('成功添加一条商品信息。');location.replace('manageProduct.jsp');</script>");
else
out
.print("<script type='text/javascript'>alert('添加失败。');history.go(-1);</script>");
}
%>
<script type="text/javascript">
function fun_check_form(){
if(document.form1.serialNumber.value==""){
alert("请输入商品编号(系列)信息信息。");
return false;
}else if(document.form1.name.value==""){
alert("请输入商品名称。");
return false;
}else if(document.form1.brand.value==""){
alert("请输入商品商标。");
return false;
}else if(document.form1.model.value==""){
alert("请输入商品型号。");
return false;
}else if(document.form1.price.value==""){
alert("请输入商品价格。");
return false;
if(!isNaN(document.form1.price.value)){
alert("");
return false;
}
}else{
return true;
}
}


function checkIsFloat(){
var nc=event.keyCode;
if(nc < 48 || nc > 57 ){
if(nc==46){
var s=document.form1.price.value;
for(var i=0;i<s.length;i++){
if(s.charAt(i)=='.'){
event.keyCode=0;
return;
}
}
}else{
event.keyCode=0;return;

}
}
}
</script>
</head>

<body>
<form name="form1" action="addProduct.jsp" method="post"
onSubmit="return fun_check_form()" ENCTYPE="multipart/form-data">
<table cellspacing="1" cellpadding="4" width="100%"
class="tableborder" id="table3">

<input type="hidden" name="action" value="save">
<tr>
<td colspan="12" class="header">
添加商品信息
</td>
</tr>
<tr>
<td class="altbg1">
商品编号(系列):
</td>
<td class="altbg2" colspan="11">
<input type="text" name="serialNumber" size="34">
</td>
</tr>
<tr>
<td class="altbg1">
商品名称:
</td>
<td class="altbg2" colspan="11">
<input type="text" name="name" size="34">
</td>
</tr>
<tr>
<td class="altbg1">
商品商标:
</td>
<td class="altbg2" colspan="11">
<input type="text" name="brand" size="34">
</td>
</tr>
<tr>
<td class="altbg1">
商品型号:
</td>
<td class="altbg2" colspan="11">
<input type="text" name="model" size="34">
</td>
</tr>
<tr>
<td class="altbg1">
商品价格:
</td>
<td class="altbg2" colspan="11">
<input type="text" name="price" size="34"
onkeypress="checkIsFloat();" />
</td>
</tr>
<tr>
<td class="altbg1">
商品图片:
</td>
<td class="altbg2" colspan="11">
<input type="file" name="picture" size="34">
</td>
</tr>
<tr>
<td class="altbg1">
商品介绍:
</td>
<td class="altbg2" colspan="11">
<textarea rows="5" cols="60" name="description"></textarea>
</td>
</tr>


<tr>
<td class="altbg1"></td>
<td class="altbg2" colspan="11">
<input type="submit" value="提交" name="B1" />
 
<input type="reset" value="重置" name="B2" />
</td>
</tr>

</table>
</form>
</body>

</html>

上传还是没有成功,如果表单验证里的 ENCTYPE="multipart/form-data这句不加的话,其他的能添加成功,但是图片不成功。吐过加了的话直接不成功也不报错。这到底是什么原因啊?那位大侠帮我解决下啊
zuowangxi 2009-07-07
  • 打赏
  • 举报
回复
上传图片是用jspsmart把本地文件传到网络上去吗?
“将上传文件全部保存到指定目录”是指相对于该工程下面的指定目录吗?
新手!感觉还是不是很懂。
还请指点。。。谢谢!

顶。。。

sushou2009 2009-07-06
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 yhb417 的回复:]
代码参考:

HTML code
<%

SmartUpload mySmartUpload=new SmartUpload();
//初始化
mySmartUpload.initialize(pageContext);
try
{
//只允许上载此类文件
mySmartUpload.setAllowedFilesList("jpg,gif");
mySmartUpload.upload();
}
catch(Exception e)

[/Quote]
附上我下的代码你看下:
<%@ page language="java" import="s2jsp.bysj.dao.*,s2jsp.bysj.entity.*,java.io.*,java.awt.Image,java.awt.image.*,com.sun.image.codec.jpeg.*,java.sql.*,com.jspsmart.upload.*,java.util.*"
pageEncoding="gbk"%>
<html>
<head>
<title>请选择上传的图片</title>
<%
request.setCharacterEncoding("gbk");
response.setContentType("text/html;charset=gb2312");
String action = request.getParameter("action");
if (action != null && "save".equals(action)) {
String serialNumber = request.getParameter("serialNumber");
String name = request.getParameter("name");
String brand = request.getParameter("brand");
String model = request.getParameter("model");
String price = request.getParameter("price");

String description = request.getParameter("description");

//下面进行上传图片功能
//创建一个SmartUpload
SmartUpload myLoad = new SmartUpload();
//初始化
myLoad.initialize(pageContext);
try{
//限制上传文件的格式
myLoad.setAllowedFilesList("jpg,gif");
//上传
myLoad.upload();
}catch(Exception e){
%>
<SCRIPT language=javascript>
alert("上传的格式不对");
history.back();
</script>

<%
}
try{
File myFile = myLoad.getFiles().getFile(0);
//判断是否选择了图片
if(myFile.isMissing()){
%>
<script language=javascript>
alert("请先选择要上传的文件");
history.back();
</script>
<%
}
}catch(Exception e){
e.printStackTrace();
}

Product product = new Product();
product.setSerialNumber(serialNumber);
product.setName(name);
product.setBrand(brand);
product.setModel(model);
product.setPrice(Double.parseDouble(price));
// product.setPicture(picture);
product.setDescription(description);

ProductDao productDao = new ProductDao();

int count = productDao.addProduct(product);
if (count > 0)
out
.print("<script type='text/javascript'>alert('成功添加一条商品信息。');location.replace('manageProduct.jsp');</script>");
else
out
.print("<script type='text/javascript'>alert('添加失败。');history.go(-1);</script>");
}
%>
</head>
<body>
<form action="loadUp.jsp" method="post" enctype="multipart/form-data" name="form1">
<table border="0" align="center" cellpadding="0" cellspacing="0">
<input type="hidden" name="action" value="save">
<tr>
<td colspan="12" class="header">添加商品信息</td>
</tr>
<tr>
<td class="altbg1">商品编号(系列):</td>
<td class="altbg2" colspan="11"><input type="text"
name="serialNumber" size="34"></td>
</tr>
<tr>
<td class="altbg1">商品名称:</td>
<td class="altbg2" colspan="11"><input type="text" name="name"
size="34"></td>
</tr>
<tr>
<td class="altbg1">商品商标:</td>
<td class="altbg2" colspan="11"><input type="text" name="brand"
size="34"></td>
</tr>
<tr>
<td class="altbg1">商品型号:</td>
<td class="altbg2" colspan="11"><input type="text" name="model"
size="34"></td>
</tr>
<tr>
<td class="altbg1">商品价格:</td>
<td class="altbg2" colspan="11"><input type="text" name="price"
size="34" onkeypress="checkIsFloat();" /></td>
</tr>
<tr>
<td class="altbg1">商品图片:</td>
<td class="altbg2" colspan="11"><input type="file" name="picture"
size="34"></td>
</tr>
<tr>
<td class="altbg1">商品介绍:</td>
<td class="altbg2" colspan="11"><textarea rows="5" cols="60"
name="description"></textarea></td>
</tr>


<tr>
<td class="altbg1"></td>
<td class="altbg2" colspan="11"><input type="submit" value="提交"
name="B1" />   <input type="reset" value="重置" name="B2" /></td>
</tr>
</table>
</form>
</body>
</html>

File myFile = myLoad.getFiles().getFile(0);这里我按你的代码写的时候 File前面的会自动省略了,并且提示我 “类型 File 有歧义”.这是什么原因呢?
sushou2009 2009-07-06
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 yhb417 的回复:]
代码参考:

HTML code
<%

SmartUpload mySmartUpload=new SmartUpload();
//初始化
mySmartUpload.initialize(pageContext);
try
{
//只允许上载此类文件
mySmartUpload.setAllowedFilesList("jpg,gif");
mySmartUpload.upload();
}
catch(Exception e)

[/Quote]
你都导入了那几个包?我导入了import="java.io.*,java.awt.Image,java.awt.image.*,com.sun.image.codec.jpeg.*,java.sql.*,com.jspsmart.upload.*,java.util.*"这几个,在按照你给的代码写的时候,在 com.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(0);
这里提示错误,是什么原因啊?

jourqel 2009-07-06
  • 打赏
  • 举报
回复
4楼推荐的jspsmartupload这个组件还不错,我原来用过,我的资源里面有这个组件的使用攻略,有兴趣可以看一下
当然别的组件也不少,也挺好的,主要就是用来上传下载图片、文件什么的,common这个组件也挺不错...
wolfkoala 2009-07-06
  • 打赏
  • 举报
回复
帮顶一个
修改一下昵称 2009-07-06
  • 打赏
  • 举报
回复
你还得下下载一个jar包。
下载地址:http://download.csdn.net/source/711050

在你项目里面导入这个包。
修改一下昵称 2009-07-06
  • 打赏
  • 举报
回复
代码参考:

<%

SmartUpload mySmartUpload=new SmartUpload();
//初始化
mySmartUpload.initialize(pageContext);
try
{
//只允许上载此类文件
mySmartUpload.setAllowedFilesList("jpg,gif");
mySmartUpload.upload();
}
catch(Exception e)
{
%>
<SCRIPT language=javascript>
alert("上传的格式不对");
history.back();
</script>
<%
}
try
{
com.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(0);
if (myFile.isMissing())
{
%>
<SCRIPT language=javascript>
alert("请先选择要上传的文件");
history.back();
</script>
<%
}
else
{
mySmartUpload.save("/image");
String image = myFile.getFileName();
product.setPrcture(image);
int count =productDao.insertProduct(product);
if(count!=0)
{
%>
<SCRIPT language=javascript>
alert("添加成功!");
location.replace("../Select.jsp");
</script>
<%
}
else
{
%>
<SCRIPT language=javascript>
alert("失败");
location.replace("../Select.jsp");
</script>
<%
}
}
}
catch (Exception e)
{
out.print(e.getMessage());
}
%>


具体参考这里:http://hi.baidu.com/%D1%A6%B9%A6%CF%B2/blog/item/50a3e9a865f65ef41f17a2a6.html
sushou2009 2009-07-06
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 yhb417 的回复:]
你要将用户所选的图片上传到你的服务器上。
然后获得图片的名称。。
以便下次能正常的获取到这张图片
[/Quote]
能具体一点吗?最好写下代码,我是新手不是很明白
修改一下昵称 2009-07-06
  • 打赏
  • 举报
回复
你要将用户所选的图片上传到你的服务器上。
然后获得图片的名称。。
以便下次能正常的获取到这张图片
sushou2009 2009-07-06
  • 打赏
  • 举报
回复
下面附上的是添加商品页面的代码:
<%@ page language="java" import="s2jsp.bysj.dao.*,s2jsp.bysj.entity.*"
pageEncoding="gbk"%>
<%@ include file="checkSession.jsp"%>
<html>

<head>
<meta http-equiv="Content-Language" content="zh-cn">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>管理员-添加</title>
<link rel="stylesheet" type="text/css" href="../css/style_admin.css">
<%
request.setCharacterEncoding("gbk");
response.setContentType("text/html;charset=gb2312");
String action = request.getParameter("action");
if (action != null && "save".equals(action)) {
String serialNumber = request.getParameter("serialNumber");
String name = request.getParameter("name");
String brand = request.getParameter("brand");
String model = request.getParameter("model");
String price = request.getParameter("price");
String picture = request.getParameter("picture");
String description = request.getParameter("description");

Product product = new Product();
product.setSerialNumber(serialNumber);
product.setName(name);
product.setBrand(brand);
product.setModel(model);
product.setPrice(Double.parseDouble(price));
product.setPicture(picture);
product.setDescription(description);

ProductDao productDao = new ProductDao();

int count = productDao.addProduct(product);
if (count > 0)
out
.print("<script type='text/javascript'>alert('成功添加一条商品信息。');location.replace('manageProduct.jsp');</script>");
else
out
.print("<script type='text/javascript'>alert('添加失败。');history.go(-1);</script>");
}
%>
<script type="text/javascript">
function fun_check_form(){
if(document.form1.serialNumber.value==""){
alert("请输入商品编号(系列)信息信息。");
return false;
}else if(document.form1.name.value==""){
alert("请输入商品名称。");
return false;
}else if(document.form1.brand.value==""){
alert("请输入商品商标。");
return false;
}else if(document.form1.model.value==""){
alert("请输入商品型号。");
return false;
}else if(document.form1.price.value==""){
alert("请输入商品价格。");
return false;
if(!isNaN(document.form1.price.value)){
alert("");
return false;
}
}else{
return true;
}
}


function checkIsFloat(){
var nc=event.keyCode;
if(nc < 48 || nc > 57 ){
if(nc==46){
var s=document.form1.price.value;
for(var i=0;i<s.length;i++){
if(s.charAt(i)=='.'){
event.keyCode=0;
return;
}
}
}else{
event.keyCode=0;return;

}
}
}
</script>
</head>

<body>
<form name="form1" action="addProduct.jsp" method="post"
onSubmit="return fun_check_form()">
<table cellspacing="1" cellpadding="4" width="100%" class="tableborder"
id="table3">

<input type="hidden" name="action" value="save">
<tr>
<td colspan="12" class="header">添加商品信息</td>
</tr>
<tr>
<td class="altbg1">商品编号(系列):</td>
<td class="altbg2" colspan="11"><input type="text"
name="serialNumber" size="34"></td>
</tr>
<tr>
<td class="altbg1">商品名称:</td>
<td class="altbg2" colspan="11"><input type="text" name="name"
size="34"></td>
</tr>
<tr>
<td class="altbg1">商品商标:</td>
<td class="altbg2" colspan="11"><input type="text" name="brand"
size="34"></td>
</tr>
<tr>
<td class="altbg1">商品型号:</td>
<td class="altbg2" colspan="11"><input type="text" name="model"
size="34"></td>
</tr>
<tr>
<td class="altbg1">商品价格:</td>
<td class="altbg2" colspan="11"><input type="text" name="price"
size="34" onkeypress="checkIsFloat();" /></td>
</tr>
<tr>
<td class="altbg1">商品图片:</td>
<td class="altbg2" colspan="11"><input type="file" name="picture"
size="34"></td>
</tr>
<tr>
<td class="altbg1">商品介绍:</td>
<td class="altbg2" colspan="11"><textarea rows="5" cols="60"
name="description"></textarea></td>
</tr>


<tr>
<td class="altbg1"></td>
<td class="altbg2" colspan="11"><input type="submit" value="提交"
name="B1" />   <input type="reset" value="重置" name="B2" /></td>
</tr>

</table>
</form>
</body>

</html>

我一开始图片空间用的是text,现在换成了file,求教高手我该怎么样做?

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧