jsp将图片等文件上传到服务器根目录下,读取二进制流存入mysql?怎么样实现?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jsp将图片等文件上传到服务器根目录下,读取二进制流存入mysql?怎么样实现?相关的知识,希望对你有一定的参考价值。

参考技术A 插入图片到数据库代码片段
private Connection conn = null;
private PreparedStatement pstmt = null;
private static final String sql = "INSERT INTO images_info(image_id,image_name,image_size,image_date,image_type,image_description,author,image_data)VALUES(null,?,?,now(),?,?,?,?)";
public boolean addPhoto(ImageVo imageVo)
boolean flag = false;
try
//将文件转换为流文件
InputStream photoStream = new FileInputStream(imageVo.getImageData());
//获取数据库连接
conn = ConnectionFactory.getConnection();
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, imageVo.getImageName());
pstmt.setInt(2, imageVo.getImageSize());
pstmt.setString(3 , "jpg");//图片类型
pstmt.setString(4, imageVo.getDescription());
pstmt.setString(5, imageVo.getAuthor());
pstmt.setBinaryStream(6, photoStream, (int)imageVo.getImageData().length());
int row = pstmt.executeUpdate();
if(row == 1)
flag = true;

catch(FileNotFoundException fe)
fe.printStackTrace();
catch(SQLException e)
e.printStackTrace();
finally
if(null != pstmt)
trypstmt.close();
catch(SQLException e)
e.printStackTrace();


if(null != conn)
tryconn.close();
catch(SQLException e)
e.printStackTrace();



return flag;

asp.net上传图片到服务器路径的问题?

我用VS2003(VB)做了一个上传图片的功能,现在问题是,我在本地调试时候 uploadfile.PostedFile.SaveAs(Server.MapPath("../image/") & "XXX.jpg")这句中filepath解析后是:C:\inteput\wwwroot\image\XXX.jpg。我服务器根目录是/fqueen.我的所有文件放在这个根目录下边的。那我的上传语句该怎么写啊,我现在给路径搞晕了!
====================================================================
以下我上传部分代码:
Dim filename, filepath As String
If uploadfile.Value <> "" Then
filename = Path.GetFileName(uploadfile.value) '源图片文件名
filepath = Server.MapPath("../image/") & dl1.SelectedValue & "/" & filename '上传路径
uploadfile.PostedFile.SaveAs(filepath) ----->'这句代码出错了。
。。。。。。。。。。。。。。。。。。。。。。
====================================================================
希望有人能帮我解答这个问题,谢谢了!!!
================================================================
上边可能说得不很清楚我给个例子:
假如我的网站的根目录是: /fqueen
在它下边有个image文件夹(上传图片存放的位置),如图:
在web_eng里边有个上传页面upload.aspx.
现在想在点击上传页面upload.aspx,将图片上传到image文件夹里边去。代码应该怎么写呢?请指教!!!
如果我的上传页面upload.aspx在其他文件夹里边,那上传路径是不是也一样的呢??
=================================================================================

应该这样写:
filepath = Server.MapPath("~")&"/image/"& dl1.SelectedValue & "/" & filename '上传路径 ,这样即使是把网站放在虚拟目录下页没问题

你只要记住一点:Server.MapPath()方法是获取你服务器上你存放文件的物理地址,假如你把网站根目录指向d:\wwwroot\fqueen,那么就可以通过 Server.MapPath("~")的方法获得你的这个根目录。
当然也可以用HttpContext.Current.Request.MapPath()的方法,不过要注意路径。

补充:
======================================
即使你的upload.aspx在web_eng下(web_eng/upload.aspx),使用上面的方法也一样的,因为filepath = Server.MapPath("~")&"/image/" 就是指向你的服务器物理地址:d:\wwwroot\fqueen\images 的,所以无论你将upload.aspx文件放在什么目录下,上传文件的路径都是正确的。
参考技术A string str = Path.GetFileNameWithoutExtension(FileUpload1.FileName);//获取当前文件名
path = HttpContext.Current.Request.MapPath("~/upFile/");//获取当前网站路径
FileUpload1.SaveAs(path + FileUpload1.FileName);//将文件保存到 我所建的网站的路径下。

++++++++++++++++++++++++++++
string path=HttpContext.Current.Request.MapPath("~/upFile/");//这个就是比如你那个bin文件夹。你的图片 image文件夹

你上传这样 saveas(path+"文件名");

以上是关于jsp将图片等文件上传到服务器根目录下,读取二进制流存入mysql?怎么样实现?的主要内容,如果未能解决你的问题,请参考以下文章

java项目客户上传的图片放到哪好

java项目客户上传的图片放到哪好

java 怎么根据httpPost 和httpClient 等,传图片到服务器!

uniapp上传图片至服务器,获得在线图片链接预览(实战)

拦截器与文件上传

利用Struts拦截器完成文件上传功能