jsp上传文件到服务器问题
我用 jspsmart组件 做上传文件,我把图片上传到服务器,但当tomcat部署 Remove 掉项目时 服务器的图片就全没了,这样项目
拿到别的机子运行就没有图片,所以我把图片的名字+后缀 保存到数据库 但不知道当项目运行时如何将数据库的图片自动上传
到服务器上
或者不要保存到数据库,如何把图片直接保存在MyEclipse的项目中的upload的文件夹 ( upload文件夹是保存图片的 )
这样就是双份保存 如何做到
这是上传的代码:
uploadimage.jsp 页面
<%
SmartUpload mySmartUpload=new SmartUpload();
long file_size_max=4000000;
String fileName2="",ext="",testvar="";
String url="upload/";
mySmartUpload.initialize(pageContext);
try{
mySmartUpload.setAllowedFilesList("jpg,gif");
mySmartUpload.upload();
}
catch(Exception e)
{
%>
<script type="text/javascript">
alert("只允许上传.jpg和.gif类型图片文件");
</script>
<%
}
String name=null;
try
{
com.jspsmart.upload.File myFile=mySmartUpload.getFiles().getFile(0);
//若文件不存在则继续
if(myFile.isMissing())
{
%>
<script type="text/javascript">
alert("请选择要上传的文件");
window.location='upload.htm';
</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());
name=filename;
saveurl=application.getRealPath("/")+url;
saveurl+=filename+"."+ext;
// 将文件另存到以WEB应用程序的根目录为文件根目录的目录下
myFile.saveAs(saveurl,SmartUpload.SAVE_PHYSICAL);
}
}
}
catch(Exception e)
{
out.print(e.toString());
}
//ImageDao是一个图片的dao层
ImageDao imgDao=new ImageDao();
System.out.println(name+"."+ext);
//用AddImageName的方法添加一张图片名称到数据库中,不是图片的全路径,是图片名而已
int result=imgDao.AddImageName(name+"."+ext);
if(result>0)
{
response.sendRedirect("success.jsp");
}
else
{
out.print("<script language=javascript>alert('添加到数据库失败');</script>");
}
%>
upload.jsp 页面
<html>
<head>
<title>掉</title>
<script type="text/javascript">
function checkfile()
{
if(document.form1.file.value==null)
{
alert('去死');
return false;
}
return true;
}
</script>
</head>
<body>
<table border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td height="45" align="center" valign="middle">
<form action="uploadimage.jsp" method="post" enctype="multipart/form-data" name="form1" onsubmit="return checkfile()">
<input type="file" name="file">
<input type="submit" name="Submit" value="上传">
</form></td>
</tr>
</table>
拿到别的机子运行就没有图片,所以我把图片的名字+后缀 保存到数据库 但不知道当项目运行时如何将数据库的图片自动上传
到服务器上
或者不要保存到数据库,如何把图片直接保存在MyEclipse的项目中的upload的文件夹 ( upload文件夹是保存图片的 )
这样就是双份保存 如何做到
这是上传的代码:
uploadimage.jsp 页面
<%
SmartUpload mySmartUpload=new SmartUpload();
long file_size_max=4000000;
String fileName2="",ext="",testvar="";
String url="upload/";
mySmartUpload.initialize(pageContext);
try{
mySmartUpload.setAllowedFilesList("jpg,gif");
mySmartUpload.upload();
}
catch(Exception e)
{
%>
<script type="text/javascript">
alert("只允许上传.jpg和.gif类型图片文件");
</script>
<%
}
String name=null;
try
{
com.jspsmart.upload.File myFile=mySmartUpload.getFiles().getFile(0);
//若文件不存在则继续
if(myFile.isMissing())
{
%>
<script type="text/javascript">
alert("请选择要上传的文件");
window.location='upload.htm';
</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());
name=filename;
saveurl=application.getRealPath("/")+url;
saveurl+=filename+"."+ext;
// 将文件另存到以WEB应用程序的根目录为文件根目录的目录下
myFile.saveAs(saveurl,SmartUpload.SAVE_PHYSICAL);
}
}
}
catch(Exception e)
{
out.print(e.toString());
}
//ImageDao是一个图片的dao层
ImageDao imgDao=new ImageDao();
System.out.println(name+"."+ext);
//用AddImageName的方法添加一张图片名称到数据库中,不是图片的全路径,是图片名而已
int result=imgDao.AddImageName(name+"."+ext);
if(result>0)
{
response.sendRedirect("success.jsp");
}
else
{
out.print("<script language=javascript>alert('添加到数据库失败');</script>");
}
%>
upload.jsp 页面
<html>
<head>
<title>掉</title>
<script type="text/javascript">
function checkfile()
{
if(document.form1.file.value==null)
{
alert('去死');
return false;
}
return true;
}
</script>
</head>
<body>
<table border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td height="45" align="center" valign="middle">
<form action="uploadimage.jsp" method="post" enctype="multipart/form-data" name="form1" onsubmit="return checkfile()">
<input type="file" name="file">
<input type="submit" name="Submit" value="上传">
</form></td>
</tr>
</table>
...全文
相关推荐
纯jsp实现文件上传(页面无刷新,表单数据可连续填写最后上传文件)
这是一个纯jsp实现的文件上传功能. 无页面刷新,表单数据可以依次连续填写,最后上传文件. 文件上传后将文件名和上传路径返回,供业务保存DB使用.
JSP同时选择多文件上传MultifileUploadDemo
利用flash上传工具,结合jsp来进行多文件上传demo。 能一次性的选择多个文件,有上传进度显示;java项目
jsp中在提交表单时的中文处理问题
jsp中提交表单的时候我们一般对中文的处理
jsp页面实现文件上传下载
利用jsp实现文件的上传和下载,真的很不错,不信你可以看一下
jsp-解决文件上传后重启Tomcat时文件自动删除问题.docx
jsp-解决文件上传后重启Tomcat时文件自动删除问题.docx


Web 开发
