struts +hibernate 怎么保存图片 只用struts上传过文件,图片?没试过学习 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 把图片上传到服务器一个指定的地点,然后把这个路径的字符串存到数据库里,hibernate 里面定义个字段就可以了用struts 的 FormFile 这个东西上传图片 public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { FileForm fileForm = (FileForm) form; file=fileForm.getFileName(); String name=file.getFileName(); String path=getServlet().getServletContext().getRealPath("/"); String sql; try{ fileread=file.getInputStream(); filewrite=new FileOutputStream(path+"yourfolder\\"+name); byte[] buffer=new byte[10240]; while((bytesRead=fileread.read(buffer,0,10240))!=-1) filewrite.write(buffer,0,bytesRead); filewrite.close(); fileread.close(); file.destroy(); } catch(IOException ex){ ex.printStackTrace(); } 楼上的说的不错,不过byte[] buffer=new byte[10240];文件大了不够用,小了浪费byte[] buffer=new byte[youFile.available()];用大字段会更爽一点 再给你提个醒,提交的时候一定要做检测,不要什么文件都可以提交上传,例如jsp //ACTION 里加import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStream;import java.io.OutputStream; FormFile file = adif.getFile(); String fname = adif.getProgID(); String postfix = file.getFileName(); // still not use String size = Integer.toString(file.getFileSize()) + "bytes"; InputStream streamIn = file.getInputStream(); OutputStream streamOut = new FileOutputStream(dir +"\\"+ fname + ".jpg" ); int bytesRead =0; byte[] buffer = new byte[8192]; while((bytesRead = streamIn.read(buffer,0,8192)) != -1) { streamOut.write(buffer,0,bytesRead); } java 操作云盘 www.box.com java HTTP POST返回问题 java继承的疑问 Filter 问题,我要通过 Filter 做一个1分钟内限制请求次数的程序 bmp的ejbPassivate方法何时被调用 hibernate:many-to-one中的cascade怎么用啊? [资料]分享辛苦分类整理的1000多个Java开源项目 紧急求助:JSP调用EJB,多谢多谢 咨询一个关于javamail设置问题,在线结帖. 有个小问题,希望有空的xdjm过来说说 sax解析中怎么获得element的schema类型? bean:write 打印值问题
HttpServletRequest request, HttpServletResponse response) {
FileForm fileForm = (FileForm) form;
file=fileForm.getFileName();
String name=file.getFileName();
String path=getServlet().getServletContext().getRealPath("/");
String sql;
try{
fileread=file.getInputStream();
filewrite=new FileOutputStream(path+"yourfolder\\"+name);
byte[] buffer=new byte[10240];
while((bytesRead=fileread.read(buffer,0,10240))!=-1)
filewrite.write(buffer,0,bytesRead);
filewrite.close();
fileread.close();
file.destroy();
} catch(IOException ex){
ex.printStackTrace();
}
文件大了不够用,小了浪费
byte[] buffer=new byte[youFile.available()];
用大字段会更爽一点
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream; FormFile file = adif.getFile();
String fname = adif.getProgID();
String postfix = file.getFileName(); // still not use
String size = Integer.toString(file.getFileSize()) + "bytes";
InputStream streamIn = file.getInputStream();
OutputStream streamOut = new FileOutputStream(dir +"\\"+ fname + ".jpg" ); int bytesRead =0;
byte[] buffer = new byte[8192];
while((bytesRead = streamIn.read(buffer,0,8192)) != -1)
{
streamOut.write(buffer,0,bytesRead);
}