导航:首页 > 编程语言 > java获取上传图片

java获取上传图片

发布时间:2025-01-11 17:41:21

❶ 用java写上传图片时,怎么实现预览功能

图片上传后在网页上直接读取上传后的地址进行预览,就是说这个时候图片已经上传到服务器了,如果要写的严谨一些,可以在预览后进行保存操作,如果不保存,则再写一条语句把上传上去的文件删除

❷ java实现图片上传下载

用java完成图片多张批量上传的功能,还有就是后台的应该怎么处理上传的照片。

环境准备

1.下载并安装Tomcat(已经有很多关于Tomcat安装以及使用的文章,在这里不再介绍);

2.下载Fileupload的jar包commons-fileupload-1.0-beta-1.jar,并将该文件拷贝到{$TOMCAT}/common/lib目录下(其中{$TOMCAT}为Tomcat的安装目录);

3.由于Fileupload子项目同时要用到另外一个项目commons-Beanutils,所以必须下载Beanutils,并将解压后的文件commons-beanutils.jar拷贝到{$TOMCAT}/common/lib目录下。

开发文件上传页面

文件上传的界面如图1所示。为了增加效率我们设计了三个文件域,同时上传三个文件。

图1文件上传界面

页面的HTML代码如下:

html

head

title文件上传演示/title

/head

bodybgcolor=“#FFFFFF”text=“#000000”leftmargin=“0”topmargin=“40”marginwidth=“0”marginheight=“0”

center

h1文件上传演示/h1

formname=“uploadform”method=“POST”action=“save.jsp”ENCTYPE=“multipart/form-data”

tableborder=“1”width=“450”cellpadding=“4”cellspacing=“2”bordercolor=“#9BD7FF”

trtdwidth=“100%”colspan=“2”

文件1:inputname=“file1”size=“40”type=“file”

/td/tr

trtdwidth=“100%”colspan=“2”

文件2:inputname=“file2”size=“40”type=“file”

/td/tr

trtdwidth=“100%”colspan=“2”

文件3:inputname=“file3”size=“40”type=“file”

/td/tr

/table

br/br/

table

trtdalign=“center”inputname=“upload”type=“submit”value=“开始上传”//td/tr

/table

/form

/center

/body

/html

代码中要特别注意的是黑体处。必须保证表单的ENCTYPE属性值为multipart/form-data,这样浏览器才能正确执行上传文件的操作。

处理上传文件信息

由于本文主要是讲述如何使用Commons-fileupload,所以为了便于修改、调试,上传文件的保存使用一个JSP文件来进行处理。我们将浏览器上传来的所有文件保存在一个指定目录下并在页面上显示所有上传文件的详细信息。保存页面处理结果见图2所示。

图2保存页面

下面来看看save.jsp的代码:

%

/**

*演示文件上传的处理

*@authorahref=“mailto:[email protected]”WinterLau/a

*@version$Id:save.jsp,v1.002003/03/0110:10:15

*/

%

%@pagelanguage=“java”contentType=“text/html;charset=GBK”%

%@pageimport=“java.util.*”%

%@pageimport=“org.apache.commons.fileupload.*”%

html

head

title保存上传文件/title

/head

%

Stringmsg=“”;

FileUploadfu=newFileUpload();

//设置允许用户上传文件大小,单位:字节

fu.setSizeMax(10000000);

//?

//设置最多只允许在内存中存储的数据,单位:字节

fu.setSizeThreshold(4096);

//设置一旦文件大小超过getSizeThreshold()的值时数据存放在硬盘的目录

fu.setRepositoryPath(“C:\TEMP”);

//开始读取上传信息

ListfileItems=fu.parseRequest(request);

%

bodybgcolor=“#FFFFFF”text=“#000000”leftmargin=“0”topmargin=“40”marginwidth=“0”marginheight=“0”

fontsize=“6”color=“blue”文件列表:/font

center

tablecellpadding=0cellspacing=1border=1width=“100%”

tr

tdbgcolor=“#008080”文件名/td

tdbgcolor=“#008080”大小/td

/tr

%

//依次处理每个上传的文件

Iteratoriter=fileItems.iterator();

while(iter.hasNext()){

FileItemitem=(FileItem)iter.next();

//忽略其他不是文件域的所有表单信息

if(!item.isFormField()){

Stringname=item.getName();

longsize=item.getSize();

if((name==null||name.equals(“”))size==0)

continue;

%

tr

td%=item.getName()%/td

td%=item.getSize()%/td

/tr

%

//保存上传的文件到指定的目录

name=name.replace(‘:’,‘_’);

name=name.replace(‘\’,‘_’);

item.write(“F:\”+name);

}

}

%

/table

br/br/

ahref=“upload.html”返回上传页面/a

/center

/body

/html

在这个文件中需要注意的是FileUpload对象的一些参数值的意义,如下面代码所示的三个参数sizeMax、sizeThreshold、repositoryPath:

FileUploadfu=newFileUpload();

//设置允许用户上传文件大小,单位:字节

fu.setSizeMax(10000000);

//?

//设置最多只允许在内存中存储的数据,单位:字节

fu.setSizeThreshold(4096);

//设置一旦文件大小超过getSizeThreshold()的值时数据存放在硬盘的目录

fu.setRepositoryPath(“C:\TEMP”);

这3个参数的意义分别为:

SizeMax用来设置上传文件大小的最大值,一旦用户上传的文件大小超过该值时将会抛出一个FileUploadException异常,提示文件太大;

SizeThreshold设置内存中缓冲区的大小,一旦文件的大小超过该值的时候,程序会自动将其它数据存放在repositoryPath指定的目录下作为缓冲。合理设置该参数的值可以保证服务器稳定高效的运行;

RepositoryPath指定缓冲区目录。

使用注意事项

从实际应用的结果来看该模块能够稳定高效的工作。其中参数SizeThreshold的值至关重要,设置太大会占用过多的内存,设置太小会频繁使用硬盘作为缓冲以致牺牲性能。因此,设置该值时要根据用户上传文件大小分布情况来设定。例如大部分文件大小集中在100KB左右,则可以使用100KB作为该参数的值,当然了再大就不合适了。使用commons-fileupload来处理HTTP文件上传的功能模块很小,但是值得研究的东西很多。

javaweb开发,上传图片并读取

javaweb开发中,使用文件操作类来上传图片并读取,如下代码:

?*?@desc:?图片处理工具

?*?@author:?bingye

?*?@createTime:?2015-3-17?下午04:25:32

?*?@version:?v1.0

?*/

public?class?ImageUtil?{

?

????/**

????*?将图片写到客户端

????*?@author:?bingye

????*?@createTime:?2015-3-17?下午04:36:04

????*?@history:

????*?@param?image

????*?@param?response?void

????*/

????public?static?void?writeImage(byte[]?image,HttpServletResponse?response){

????????if(image==null){

????????????return;

????????}

????????byte[]?buffer=new?byte[1024];

????????InputStream?is=null;

????????OutputStream?os=null;

????????try?{

????????????is=new?ByteArrayInputStream(image);

????????????os=response.getOutputStream();

????????????while(is.read(buffer)!=-1){

????????????????os.write(buffer);

????????????????os.flush();

????????????}

????????}?catch?(IOException?e)?{

????????????e.printStackTrace();

????????}?finally{

????????????try?{

????????????????if(is!=null){is.close();}

????????????????if(os!=null){os.close();}

????????????}?catch?(IOException?e)?{

????????????????e.printStackTrace();

????????????}

????????}

????}

?????

????/**

????*?获取指定路劲图片

????*?@author:?bingye

????*?@createTime:?2015-3-21?上午10:50:44

????*?@param?filePath

????*?@param?response?void

????*/

????public?static?void?writeImage(String?filePath,HttpServletResponse?response){

????????File?imageFile=new?File(filePath);?

????????if(imageFile!=null??imageFile.exists()){

????????????byte[]?buffer=new?byte[1024];

????????????InputStream?is=null;

????????????OutputStream?os=null;

????????????try?{

????????????????is=new?FileInputStream(imageFile);

????????????????os=response.getOutputStream();

????????????????while(is.read(buffer)!=-1){

????????????????????os.write(buffer);

????????????????????os.flush();

????????????????}

????????????}?catch?(FileNotFoundException?e)?{

????????????????e.printStackTrace();

????????????}?catch?(IOException?e)?{

????????????????e.printStackTrace();

????????????}?finally{

????????????????try?{

????????????????????if(is!=null){is.close();}

????????????????????if(os!=null){os.close();}

????????????????}?catch?(IOException?e)?{

????????????????????e.printStackTrace();

????????????????}

????????????}

????????}

????}

?????

????/**

????*?图片上传到文件夹

????*?@author:?bingye

????*?@createTime:?2015-3-20?下午08:07:25

????*?@param?file

????*?@param?savePath

????*?@return?boolean

????*/

????public?static?ResultDto?uploadToLocal(CommonsMultipartFile?file,String?savePath){

????????if(file!=null??!file.isEmpty()){

????????????//获取文件名称

????????????String?fileName=file.getOriginalFilename();

????????????//获取后缀名

????????????String?suffixName=fileName.substring(fileName.indexOf(".")+1);

????????????//新名称

????????????String?newFileName=System.currentTimeMillis()+"."+suffixName;

????????????//新文件路劲

????????????String?filePath=savePath+newFileName;

????????????//获取存储文件路径

????????????File?fileDir=new?File(savePath);

????????????if(!fileDir.exists()){

????????????????//如果文件夹没有:新建

????????????????fileDir.mkdirs();

????????????}

????????????FileOutputStream?fos=null;

????????????try?{

????????????????fos=new?FileOutputStream(filePath);

????????????????fos.write(file.getBytes());

????????????????fos.flush();

????????????????return?ResultUtil.success("UPLOAD_SUCCESS",?URLEncoder.encode(newFileName,"utf-8"));

????????????}?catch?(Exception?e)?{

????????????????e.printStackTrace();

????????????????return?ResultUtil.fail("UPLOAD_ERROR");

????????????}?finally{

????????????????try?{

????????????????????if(fos!=null){

????????????????????????fos.close();

????????????????????}

????????????????}?catch?(IOException?e)?{

????????????????????e.printStackTrace();

????????????????????return?ResultUtil.fail("UPLOAD_ERROR");

????????????????}

????????????}

????????}

????????return?ResultUtil.fail("UPLOAD_ERROR");

????}

?????

?????

?????

}

请问用Java如何实现图片上传功能?

我有一段上传图片的代码,并且可以根据实际,按月或按天等,生成存放图片的文件夹

首先在JSP上放一个FILE的标签这些我都不说了,你也一定明白,我直接把处理过程给你发过去

我把其中存到数据库中的内容删除了,你改一下就能用

/**

*

*上传图片

*@paramservlet

*@paramrequest

*@paramresponse

*@return

*@throwsException

*/

//这里我是同步上传的,你随意

(HttpServletservlet,HttpServletRequestrequest,HttpServletResponseresponse)throwsException{

SimpleDateFormatformatDate=newSimpleDateFormat("yyyyMM");

Datenowtime=newDate();

Stringformatnowtime=formatDate.format(nowtime);

Fileroot=newFile(request.getRealPath("/")+"uploadfile/images/"+formatnowtime+"/");//应保证在根目录中有此目录的存在如果没有,下面则上创建新的文件夹

if(!root.isDirectory())

{

System.out.println("创建新文件夹成功"+formatnowtime);

root.mkdir();

}

intreturnflag=0;

SmartUploadmySmartUpload=newSmartUpload();

intfile_size_max=1024000;

Stringext="";

Stringurl="uploadfile/images/"+formatnowtime+"/";

//只允许上载此类文件

try{

//初始化

mySmartUpload.initialize(servlet.getServletConfig(),request,response);

mySmartUpload.setAllowedFilesList("jpg,gif,bmp,jpeg,png,JPG");

//上载文件

mySmartUpload.upload();

}catch(Exceptione){

response.sendRedirect()//返回页面

}

com.jspsmart.upload.

阅读全文

与java获取上传图片相关的资料

热点内容
优先级队列java 浏览:154
轻量化腾讯云服务器有什么用 浏览:460
编译原理自编译语言 浏览:423
闲鱼app为什么这么多 浏览:690
安卓手机玩游戏不卡怎么设置 浏览:568
编译链接装载书 浏览:537
面试腾讯公司程序员 浏览:108
一个字母y是什么app 浏览:142
魔兽大脚解压安装教程 浏览:7
超时代共享文件夹破解版 浏览:441
命令与征服红色警戒3攻略 浏览:724
解压缩jar包 浏览:586
如何计算服务器的最大并发数 浏览:345
java数组类型定义 浏览:850
安卓卡一和卡二怎么切换 浏览:985
用价值观统领算法强化责任 浏览:783
外汇阿里云服务器买哪一种类型 浏览:448
绍兴程序员接私活攻略 浏览:644
java获取上传图片 浏览:50
主次梁交叉处箍筋加密长度 浏览:967