javaweb 上传头像
怎么上传img,小白没有概念。只会servlet,jsp1,上传的时候数据是存在哪里,text内容是存在参数里,img数据也是存在参数里?然后在servlet用io读写?...
怎么上传img,小白没有概念。只会servlet ,jsp
1 ,上传的时候数据是存在哪里,text内容是存在参数里,img数据也是存在参数里?然后在servlet用io读写?
2 ,网上说在服务器端用一个专门的文件夹存放,然后把url放到数据库中,该怎么做呢。。。
3, 还有,就是以上做完后又jsp应该怎么显示头像,用一个servlet读取吗 展开
1 ,上传的时候数据是存在哪里,text内容是存在参数里,img数据也是存在参数里?然后在servlet用io读写?
2 ,网上说在服务器端用一个专门的文件夹存放,然后把url放到数据库中,该怎么做呢。。。
3, 还有,就是以上做完后又jsp应该怎么显示头像,用一个servlet读取吗 展开
- 你的回答被采纳后将获得:
- 系统奖励15(财富值+成长值)+难题奖励10(财富值+成长值)+提问者悬赏80(财富值+成长值)
1个回答
推荐于2017-11-27
展开全部
前台:<form method="post" id="form_photo"enctype="multipart/form-data"action="xxxx.do">
<input type="file"name="upload-file">
<input type="submit"value="上传">
</form>
后台:
public String uploadImgs(MultipartFile multFile, HttpServletRequest request, HttpServletResponse response,int id) throws Exception{
MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest)request;
MultipartFile multFile = multiRequest.getFile("upload_file");
ImageInputStream iis = null;
// 扩展名格式:
String extName = "";
String newName = "";
boolean flag = true;
//取得上传的文件名
String fileName = multFile.getOriginalFilename();
if(!fileName.isEmpty() && !"".equals(fileName.trim())){
//上传文件的大小
long size = multFile.getSize();
if(size > (1024*1024)){
flag = false;
}
if (fileName.lastIndexOf(".") >= 0) {
extName = fileName.substring(fileName.lastIndexOf("."));
}
//定义允许上传的文件类型
List<String> fileTypes = new ArrayList<String>();
fileTypes.add(".jpg");
fileTypes.add(".jpeg");
fileTypes.add(".gif");
fileTypes.add(".png");
if(!fileTypes.contains(extName.toLowerCase())){
flag = false;
} //这是存储的路径,直接在你的项目下加个目录
String savePath =request.getSession().getServletContext().getRealPath("/images/")+"/";
File f1 = new File(savePath);
if (!f1.exists()) {
f1.mkdirs();
}
if(flag){
//以ID为名
newName =id+"";
Iterator<ImageReader> it = ImageIO.getImageReadersByFormatName(new String(extName.substring(1).getBytes(),"utf-8"));
ImageReader reader = it.next();
iis = ImageIO.createImageInputStream(multFile.getInputStream());
reader.setInput(iis,true) ;
ImageReadParam param = reader.getDefaultReadParam();
BufferedImage bi = reader.read(0,param);
ImageIO.write(bi, extName.substring(1), new File(savePath + newName + ".jpg"));
}
}
}
//显示头像直接用路径取/images/id.jpg
<input type="file"name="upload-file">
<input type="submit"value="上传">
</form>
后台:
public String uploadImgs(MultipartFile multFile, HttpServletRequest request, HttpServletResponse response,int id) throws Exception{
MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest)request;
MultipartFile multFile = multiRequest.getFile("upload_file");
ImageInputStream iis = null;
// 扩展名格式:
String extName = "";
String newName = "";
boolean flag = true;
//取得上传的文件名
String fileName = multFile.getOriginalFilename();
if(!fileName.isEmpty() && !"".equals(fileName.trim())){
//上传文件的大小
long size = multFile.getSize();
if(size > (1024*1024)){
flag = false;
}
if (fileName.lastIndexOf(".") >= 0) {
extName = fileName.substring(fileName.lastIndexOf("."));
}
//定义允许上传的文件类型
List<String> fileTypes = new ArrayList<String>();
fileTypes.add(".jpg");
fileTypes.add(".jpeg");
fileTypes.add(".gif");
fileTypes.add(".png");
if(!fileTypes.contains(extName.toLowerCase())){
flag = false;
} //这是存储的路径,直接在你的项目下加个目录
String savePath =request.getSession().getServletContext().getRealPath("/images/")+"/";
File f1 = new File(savePath);
if (!f1.exists()) {
f1.mkdirs();
}
if(flag){
//以ID为名
newName =id+"";
Iterator<ImageReader> it = ImageIO.getImageReadersByFormatName(new String(extName.substring(1).getBytes(),"utf-8"));
ImageReader reader = it.next();
iis = ImageIO.createImageInputStream(multFile.getInputStream());
reader.setInput(iis,true) ;
ImageReadParam param = reader.getDefaultReadParam();
BufferedImage bi = reader.read(0,param);
ImageIO.write(bi, extName.substring(1), new File(savePath + newName + ".jpg"));
}
}
}
//显示头像直接用路径取/images/id.jpg
更多追问追答
追问
那个把url存进数据库,用的时候取出来的思路怎么搞呢,想不通
那个把url存进数据库,用的时候取出来的思路怎么搞呢,想不通
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询