最好不要用数据库来存图片,那样数据库会受不了的,建议使用JspSmartUp组件完成上传,同时把路径存入数据库,然后从数据库中读出图片路径,再使用html标记显示就行了,
解决方案 »
- 为什么我struts2.1.8+spring2.5+hibernate3+EetJs无法得到json数据
- Myeclipse中2個工程如何設置啟動哪個
- 中间的%d5%c5%f6%a6%d3% 用JS是怎么实现的。。。。。???
- 庖丁解牛分词器、索引
- 连接池的持久化如何做到?
- %%%% Error Creating SessionFactory %%%%
- 请教一个jsp登陆界面连数据库问题,谢谢!
- 怎么样配置我的服务器才能使我的JSP程序能够运行!
- 只知道文件名,如何用jsp求得此文件的相对和绝对路径?
- ajax发请求后台接收不到cookie,页面上有cookie可以确定,并且没有跨域!
- hibernate是否有这样的稳定性问题?
- 如何使tomcat支持中文文件名的下载链接??急!!
http://runmin.europe.webmatrixhosting.net/sample/savefileinxml/xmltofile.js
import javax.servlet.http.*;
import org.apache.struts.upload.FormFile;
import java.io.*;
import java.io.*;public class UploadAct
extends Action {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm,
HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
/**@todo: complete the business logic here, this is just a skeleton.*/
Upload upload = (Upload) actionForm;
FormFile img = upload.getFilename();
try {
if ( img.getFileSize() > 1024 * SYS.MAX_UPLOAD_SIZE )
{
return actionMapping.findForward("fileWrong");
}
if ( !img.getFileName().matches("^.*jpg$") )
{
return actionMapping.findForward("fileWrong");
}
byte Byte[] = new byte[1024 * SYS.MAX_UPLOAD_SIZE]; // 上传最大30K
img.getInputStream().read(Byte);
OutputStream out = new FileOutputStream(SYS.P_IMG_PATH +
httpServletRequest.getSession().
getAttribute("UserID") + ".jpg");
out.write(Byte);
}
catch (FileNotFoundException ex) {
}
catch (IOException ex) {
}
return actionMapping.findForward("finish");
}
}
只谈思路,相关代码可以查一查,很多的。
存:首先查到相关Blob字段的纪录,需要在sql里加入“for update”,然后再插入一个emptyblob(),再把你的图片以流的形式存入相关blob里。
读:一样通过流的形式从数据库中读出,显示在页面上!
说起来简单,做起来复杂,Good Luck!
我原来的是NTEXT的,只要象这样
String outputData=request.getParameter("outputData");
就可以得到前一个页面的参数,再将他存储就可以了。但这样存储进去的就没有分段。