日期:2014-05-18  浏览次数:20580 次

一个网站注册时,我想上传照片,如何实现?
那么在java文件里,输入数据库信息是,照片根别的输入语句是否一样?

------解决方案--------------------
一般的数据库中是不能存图片的。图片都是存在专门的图片服务器中,数据库中存的只是图片的地址。
------解决方案--------------------
不一样.
要通过流来操作。
参看.http://blog.csdn.net/caoyinghui1986/archive/2008/04/05/2252772.aspx

但实际的应用中 除非是机密的图片或文件就保存到数据库中 一般还是采用1楼的方式。
------解决方案--------------------
同路人!~
请关注帖子:http://topic.csdn.net/u/20080428/10/ac6f245a-aff2-4f31-a5b2-18f0c0bda513.html
帖子标题:JSP页面上传图片到服务目录并取其上传到服务目录后的绝对路径到数据库(MySQL) 或许咱用的数据库不一样,不过原理都一样.我用的是apache的FileUpload组件。

------解决方案--------------------
思路:从本地上传图片到服务目录下的一个文件夹里,并取其绝对路径和其他表单信息上传到数据库中。

一个简单的例子:

FileUpload组件下载地址:http://apache.mirror.phpchina.com/commons/fileupload/binaries/commons-fileupload-1.2.1-bin.zip
imup.jsp页面内容: 

<%@ page contentType="text/html;charset=GB2312" %> 
<html> 
<head> <title>图片文件上传 </title> 
<style type="text/css"> 
<!-- 
.style1 {font-size: 16px} 
--> 
</style> 
</head> 
<body> 
<form action="save.jsp" method="post" enctype="multipart/form-data"> 
<p> <span class="style1">请从你的电脑上选择一张图片: </span> 
<input name="file" type="file" size="28">   
<input type="submit" name="Submit" value="上传">   
<span class="style1"> 图片文件类型:JPG & GIF </span> </p> 
</form> 
</body> 
</html> 


save.jsp页面内容: 

<%@page contentType="text/html"%> 
<%@page pageEncoding="GB2312"%> 
<%@ page import="org.apache.commons.fileupload.*"%> 
<%@page import="java.io.*"%> 
<%@page import="java.util.*"%> 
<% 
boolean isMultipart = FileUpload.isMultipartContent(request); 
if(isMultipart)

DiskFileUpload upload = new DiskFileUpload(); 
//设置缓冲区大小,单位Byte。这里定义的大小是4KB。 
upload.setSizeThreshold(4096); 
//设置文件的最大尺寸,单位Byte。这里定义的大小是2MB. 
upload.setSizeMax(2097152); 
// 取得所有上传过来的文件。 
List items = upload.parseRequest(request); 
Iterator iter = items.iterator(); 
// 依次处理每一个文件: 
while (iter.hasNext()) { 
FileItem item = (FileItem)iter.next(); 
String fieldName=item.getFieldName(); //取得上传表单内所定义的文件选择单行文本框的名字。 
String name = item.getName(); //取得上传前的图片文件的绝对路径。 
long size=item.getSize(); 
String Type=item.getContentType(); //getContentType()方法用于获得上传文件的类型,如:image/jpeg 
//处理保存 
 if(Type!=null) { 
if(size <2097152 && size > 0 && (Type.equals("image/pjpeg") ¦ ¦ Type.equals("image/jpeg") ¦ ¦ Type.equals("image/gif"))) 
{
try{ 
//返回以毫秒为单位的当前时间。 
Long date = System.currentTimeMillis();
//以时间给上传到服务目录的图片文件命名,并且把上传过来的图片文件转换成jpg格式的。
String path = pageContext.getServletContext().getRealPath("/images/"+date+".jpg"); 
File f=new File(path); 
item.write(f); 
out.println("上传图片到指定的目录成功!~ "); 
out.println(" <br>上传前的图片文件的绝对路径:"+name);