Java在jsp中 如何上传图片 在上传时可以取到图片大小并修改

Java在jsp中 如何上传图片 在上传时可以取到图片大小并修改,第1张

用第三方工具去取 common-upload,具体取到图片的方法参考代码如下:

FileItemFactory fileItemFactory = new DiskFileItemFactory()

ServletFileUpload upload = new ServletFileUpload(fileItemFactory)

upload.setHeaderEncoding("utf-8")

try {

List<FileItem>items = upload.parseRequest(request)

for (FileItem fileItem : items) {

System.out.println("fileName=" + fileItem.getFieldName())

//获取文件

InputStream in = fileItem.getInputStream()

ServletContext context = getServletConfig().getServletContext()

String path = context.getRealPath("image")

System.out.println(path)

OutputStream out = new FileOutputStream(new File(path + "\\" + fileItem.getName()))

byte[] buffer = new byte[1024]

int len = 0

while((len = in.read(buffer)) != -1) {

out.write(buffer, 0, len)

}

out.close()

in.close()

System.out.println("写入完毕")

}

} catch (FileUploadException e) {

e.printStackTrace()

}

用jspSmartUpload组件来实现,用jsp+servlet在Servlet里实现的代码:

PrintWriter out = response.getWriter()

int count = 0

// 实例化上传控件对象

SmartUpload su = new SmartUpload()

// 初始化 *** 作

su.initialize(config, request, response)

// 设置上传文件最大字节数

su.setTotalMaxFileSize(100000)

//

try {

//禁止上传指定扩展名的文件

su.setDeniedFilesList("ext,bat,jsp")

} catch (SQLException e1) {

e1.printStackTrace()

}

try {

// 上传文件到服务器

su.upload()

File fileup = new File(request.getRealPath("upload"))

if(!fileup.exists()){

// 创建目录

fileup.mkdir()

}

// 处理多个文件的上传

for(int i = 0i <su.getFiles().getCount()i++){

com.jspsmart.upload.File file = su.getFiles().getFile(i)

if(!file.isMissing()){ // 如果文件有效

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

file.saveAs("/upload/new."+file.getFileExt(), su.SAVE_VIRTUAL)

count = su.save("/upload")

}

}

} catch (SmartUploadException e) {

e.printStackTrace()

}

out.println(count +"file(s) uploaded")

如果你对这个上传组件不了解,最好是先去查查用法。。。

如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!

vaela

//新建一个Smartupload对象

SmartUpload su=new SmartUpload()

//上传初始化

su.initialize(pageContext)

//设定上传限度

//1.限定每个上传文件的最大长度

//su.setMaxFileSize(100000)

//2.限制总上传数据的长度。

//su.setTotalMaxFileSize(20000)

//3.设定允许上传的文件(通过扩展名限制),仅允许doc,txt文件。

//su.setAllowFilesList("doc,text")

//4.设定禁止上传的文件(通过扩展名限制),禁止上传带有exe,bat,jsp,htm,html扩展名的文件或没有扩展名的文件

//su.setDeniedDilesList("exe,bat,jsp,html,htm,,")

//上传文件

su.upload()

//将上传文件全部保存到指定目录

int count=su.save("/upload")

out.println(count+"个上传文件成功!<br>")

//利用Request对象获取参数之值

out.println("test="+su.getRequest().getParameter("test")+"<br><br>")

//逐一提取上传文件信息,同时可保存文件。

for(int i=0i<su.getFiles().getCount()i++)

{

com.jspsmart.upload.File file=su.getFiles().getFile(i)

//若文件不存在则继续

if(file.isMissing())

continue

//显示当前文件信息

out.println("<table border=1>")

out.println("<tr><td>表单项名(FiledName)</td><td>"+file.getFieldName()+"</tr></tr>")

out.println("<tr><td>文件长度(Size)</td><td>"+file.getSize()+"</td><td>")

out.println("<tr><td>文件名(FileName)</td><td>"+file.getFileName()+"</tr></tr>")

out.println("<tr><td>文件扩展名(FiledExt)</td><td>"+file.getFileExt()+"</tr></tr>")

out.println("<tr><td>文件全名(FiledPathName)</td><td>"+file.getFilePathName()+"</tr></tr>")

out.println("</table><br>")

//将文件另存

//file.saveAs("/upload/"+myFile.getFileName())

//另存到以web应用程序的根目录为文件根目录的目录下

//file.saveAs("/upload/"+myFile.getFileName(),su.SAVE_VIRTUAL)

//另存到 *** 作系统的根目录为文件根目录的目录下

//file.safeAs("c://temp//"+myFile.getFileName(),su.SAVE_PHYSICAL)

}

上面就是了。。。。祝你好运哈!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11436123.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存