java图片批量上传代码 java图片批量上传代码是什么

用java如何一次性上传多张图片到数据库你说的这个问题 , 其实是表的设计问题 。
只要在t_b中,设计列为3列即可 。
id
,
t_a_id
,
picture
添加多个图片,不过是sql、语句 。
最简单的办法,是利用for()循环,如:
for(int
i
=
0;i图片数;i){
//你的sql操作语句如 。
//insert
图片i
into
t_b..
}
分给偶吧 。。
^
^!
java图片批量上传代码?用struts也可以实现 多文件上传
【java图片批量上传代码 java图片批量上传代码是什么】下面是我写的代码,作为参考!
/*文件目录*/
public staticString [] fileArray={
"logo.png",
"index.swf",
"OEMInfo.txt",
"favicon.ico"};
/**
* @author Caoshun
* @see 接收并保存文件
* */
public static void receiveAndSaveAllFileByPath(ActionForm form,String rootPath1,String rootPath2){
String fileName="";
//获取表单中的文件资源
HashtableObject, Object files = form.getMultipartRequestHandler().getFileElements();
//遍历文件,并且循环保存
//当前处理文件序号
int file_num=1;
for (EnumerationObject e = files.keys(); e.hasMoreElements();) {
/*根据处理的当前文件下标,确定文件名*/
fileName=fileArray[file_num-1];
FormFile file = (FormFile) files.get((String) e.nextElement());
if (file != nullfile.getFileSize()0) {
try {
//使用formfile.getInputStream()来获取一个文件的输入流进行保存 。
//文件名
//String fileName = file.getFileName();
//System.out.println("debug in AddEnterpriceAction.java on line 152 fileName is : " fileName);
//文件大小
//int fileSize = file.getFileSize();
//文件流
InputStream is = file.getInputStream();
//将输入流保存到文件
//String rootPath = this.servlet.getServletContext().getRealPath("files");
//往cn中写入
File rf = new File(rootPath1);
FileOutputStream fos = null;
fos = new FileOutputStream(new File(rf, fileName));
byte[] b = new byte[10240];
int real = 0;
real = is.read(b);
while (real0) {
fos.write(b, 0, real);
real = is.read(b);
}
//往en中写入
File rf2 = new File(rootPath2);
InputStream is2 = file.getInputStream();
FileOutputStream fos2 = null;
fos2 = new FileOutputStream(new File(rf2, fileName));
byte[] b2 = new byte[10240];
int real2 = 0;
real2 = is2.read(b2);
while (real20) {
fos2.write(b2, 0, real2);
real2 = is2.read(b2);
}
//关闭文件流
fos.close();
is.close();
fos2.close();
is2.close();
} catch (RuntimeException e1) {
e1.printStackTrace();
} catch (Exception ee) {
ee.printStackTrace();
}
file.destroy();
}
file_num;
}
}
java批量上传图片var i = 0;
// 增加一行附件上传输入框
function insert_row()
{
i;
var row;
var cell;
row = tableAtt.insertRow();
cell = row.insertCell();
cell.innerHTML = "input style=\"width:100%\" type='file' name='myFile"i"'";
}
td colspan=2
附件:
img src="https://www.04ip.com/images/icons/0013_b.gif" align="absmiddle" alt="增加附件" onclick="insert_row();"
javaWEB项目中如何实现批量选择文件并上传呢?有什么好的插件,最好有相关代码例子jquery.uploadify批量上传控件
[html]
link href="https://www.04ip.com/post/styles/uploadify.css" rel="stylesheet" type="text/css" /
script type="text/javascript" src="https://www.04ip.com/post/styles/uploadify.swf"/script
script type="text/javascript" src="https://www.04ip.com/post/javascripts/jquery.uploadify.min.js"/script
link href="https://www.04ip.com/post/styles/uploadify.css" rel="stylesheet" type="text/css" /
script type="text/javascript" src="https://www.04ip.com/post/styles/uploadify.swf"/script
script type="text/javascript" src="https://www.04ip.com/post/javascripts/jquery.uploadify.min.js"/script 还有jquery.js,你懂得!
这里注意哦,css文件会引用到这个图片哦,所以请你指定这个图片的位置哦,不然就没有显示这个叉叉哦,这个叉叉是删除按钮的哦,没有就是空白哦!
[javascript]
script
function snedUpLoad(){
var pid = $("#entityId").val();//这个是我自己获取的自定义参数
var entityName = $("#entityName").val();//同上
$("#uploadify").uploadify({//初始化uploadifyuploadify是input的id
//'debug' : false,//dubug模式 ,默认是false
'auto':false,//自动上传,就是控件自动上传,默认是true
'multi':true,
//'successTimeout':99999,//超时时间
'formData':{'pid':pid,'entityName':entityName },//我的参数列表
//'fileObjName':'uploadify',//服务器的属性名字
'uploader':'你的后台url地址;jsessionid=${pageContext.session.id}',//提交服务器路径,这里
说明下;jsessionid=${pageContext.session.id},这个是用于非IE内核的浏览器兼容的
'swf':"styles/uploadify.swf",//flash文件,官方的文件,引用上就是了
//'uploader': '/Home/Upload',//文件保存路径用处不大
'buttonText': '文件上传',//按钮
//'height':'32',//浏览按钮的高度
//'width':'100',//浏览按钮的宽度
'fileTypeDesc':'支持的格式:',//在浏览窗口底部的文件类型下拉菜单中显示的文本
'fileTypeExts':'*.jpg;*.jpge;*.gif;*.png',//允许上传的文件后缀
'fileSizeLimit':'3MB',//上传文件的大小限制
'queueSizeLimit' : 25,//上传数量
'onSelectError':function(file, errorCode, errorMsg){//返回一个错误,选择文件的时候触发
switch(errorCode) {
case -100:
alert("上传的文件数量已经超出系统限制的" $('#file_upload').uploadify('settings','queueSizeLimit') "个文件!");
break;
case -110:
alert("文件 [" file.name "] 大小超出系统限制的" $('#file_upload').uploadify('settings','fileSizeLimit') "大?。?);
break;
case -120:
alert("文件 [" file.name "] 大小异常!");
break;
case -130:
alert("文件 [" file.name "] 类型不正确!");
break;
}
},
'onFallback':function(){//检测FLASH失败调用
alert("您未安装FLASH控件,无法上传图片!请安装FLASH控件后再试 。");
},
'onUploadSuccess':function(file, data, response){//上传到服务器,服务器返回相应信息到data里
if(data){
var dataObj=eval("(" data ")");//转换为json对象
//$('#uploadify').uploadify('upload')
}
}
});
}
/script
script
function snedUpLoad(){
var pid = $("#entityId").val();//这个是我自己获取的自定义参数
var entityName = $("#entityName").val();//同上
$("#uploadify").uploadify({//初始化uploadifyuploadify是input的id
//'debug' : false,//dubug模式 ,默认是false
'auto':false,//自动上传,就是控件自动上传,默认是true
'multi':true,
//'successTimeout':99999,//超时时间
'formData':{'pid':pid,'entityName':entityName },//我的参数列表
//'fileObjName':'uploadify',//服务器的属性名字
'uploader':'你的后台url地址;jsessionid=${pageContext.session.id}',//提交服务器路径,这里
说明下;jsessionid=${pageContext.session.id},这个是用于非IE内核的浏览器兼容的
'swf':"styles/uploadify.swf",//flash文件,官方的文件,引用上就是了
//'uploader': '/Home/Upload',//文件保存路径用处不大
'buttonText': '文件上传',//按钮
//'height':'32',//浏览按钮的高度
//'width':'100',//浏览按钮的宽度
'fileTypeDesc':'支持的格式:',//在浏览窗口底部的文件类型下拉菜单中显示的文本
'fileTypeExts':'*.jpg;*.jpge;*.gif;*.png',//允许上传的文件后缀
'fileSizeLimit':'3MB',//上传文件的大小限制
'queueSizeLimit' : 25,//上传数量
'onSelectError':function(file, errorCode, errorMsg){//返回一个错误 , 选择文件的时候触发
switch(errorCode) {
case -100:
alert("上传的文件数量已经超出系统限制的" $('#file_upload').uploadify('settings','queueSizeLimit') "个文件!");
break;
case -110:
alert("文件 [" file.name "] 大小超出系统限制的" $('#file_upload').uploadify('settings','fileSizeLimit') "大?。?);
break;
case -120:
alert("文件 [" file.name "] 大小异常!");
break;
case -130:
alert("文件 [" file.name "] 类型不正确!");
break;
}
},
'onFallback':function(){//检测FLASH失败调用
alert("您未安装FLASH控件 , 无法上传图片!请安装FLASH控件后再试 。");
},
'onUploadSuccess':function(file, data, response){//上传到服务器,服务器返回相应信息到data里
if(data){
var dataObj=eval("(" data ")");//转换为json对象
//$('#uploadify').uploadify('upload')
}
}
});
}
/script
[javascript]
$(function(){
snedUpLoad();//jquery容器加载完运行我们的函数
})
$(function(){
snedUpLoad();//jquery容器加载完运行我们的函数
})

[html]
input type="file" name="uploadify" id="uploadify" ///申明控件的容器
input type="file" name="uploadify" id="uploadify" ///申明控件的容器
前台页面代码基本就这样了,很好明白,至于后台逻辑和普通上传处理一致的,这里就不列出来的,最后上一张图给大家鉴赏一下
(tip:其实他的批量上传并不是一次全部提交处理的,他是一个一个依次提交,相当是一个for循环,所以后台处理的同时只是一个文件上传,即排序的处理上传文件,就和单个文件上传的代码一样,如果你早有后台的单文件上传代码就不用改,直接调用就行了,可以共用)
一个浏览上传多个文件的java代码在Java中可以用struts2实现多个文件同时上传代码java图片批量上传代码,功能代码如下:
1、upload.jsp页面(选择上传文件)
form action="upload.action" name="uploadForm" method="post" enctype="multipart/form-data"
文件标题:input type="text" name="title"/br/
选择文件-:input type="file" name="upload"/br/
选择文件二:input type="file" name="upload"/br/
选择文件三:input type="file" name="upload"/br/
input type="submit" value="https://www.04ip.com/post/upload"/
/form
2、action代码如下:
//对应的Action依次遍历所有文件域java图片批量上传代码,然后生成对应的输入文件流java图片批量上传代码,输出文件流在指定的服务器保存路径中添加对应的输出文件流保存文件 。同时动态指定服务器上文件的保存路径 。
package com.inspur.action;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class UploadAction extends ActionSupport {
private String title;
private File[] upload;
private String[] uploadFileName;
private String[] uploadContentType;
private String savePath;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public File[] getUpload() {
return upload;
}
public void setUpload(File[] upload) {
this.upload = upload;
}
public String[] getUploadFileName() {
return uploadFileName;
}
public void setUploadFileName(String[] uploadFileName) {
this.uploadFileName = uploadFileName;
}
public String[] getUploadContentType() {
return uploadContentType;
}
public void setUploadContentType(String[] uploadContentType) {
this.uploadContentType = uploadContentType;
}
public String getSavePath() {
return ServletActionContext.getRequest().getRealPath(savePath);
}
public void setSavePath(String savePath) {
this.savePath = savePath;
}
public String upload()throws Exception{
File[] files=this.getUpload();
for(int i=0;ifiles.length;i){
FileOutputStream fos=new FileOutputStream(this.getSavePath() "\\" this.getUploadFileName()[i]);
byte[] buffer=new byte[1024];
FileInputStream fis=new FileInputStream(files[i]);
int len=0;
while((len=fis.read(buffer))0){
fos.write(buffer,0,len);
}
}
return SUCCESS;
}
}
3、success.jsp页面代码如下(上传成功界面显示所有上传的图片)
文件标题:s:property value="https://www.04ip.com/post/title"/br/
第一个图片:img alt="first" src="https://www.04ip.com/post/s:property value="'upload/' uploadFileName[0]"/"/br/
第二个图片:img alt="second" src="https://www.04ip.com/post/s:property value="'upload/' uploadFileName[1]"/"/br/
用java完成图片多张批量上传的功能,还有就是后台的应该怎么处理上传的照片 。环境准备
1. 下载并安装Tomcat(已经有很多关于Tomcat安装以及使用的文章 , 在这里不再介绍);
2. 下载File upload的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
body bgcolor=“#FFFFFF”text=“#000000” leftmargin=“0”topmargin=“40”marginwidth=“0” marginheight=“0”
center
h1文件上传演示/h1
form name=“uploadform”method=“POST” action=“save.jsp”ENCTYPE=“multipart/form-data”
table border=“1”width=“450”cellpadding=“4” cellspacing=“2”bordercolor=“#9BD7FF”
trtd width=“100%”colspan=“2”
文件1:input name=“file1”size=“40”type=“file”
/td/tr
trtd width=“100%”colspan=“2”
文件2:input name=“file2”size=“40”type=“file”
/td/tr
trtd width=“100%”colspan=“2”
文件3:input name=“file3”size=“40”type=“file”
/td/tr
/table
br/br/
table
trtd align=“center”input name=“upload” type=“submit”value=https://www.04ip.com/post/“开始上传”//td/tr
/table
/form
/center
/body
/html
代码中要特别注意的是黑体处 。必须保证表单的ENCTYPE属性值为multipart/form-data , 这样浏览器才能正确执行上传文件的操作 。
处理上传文件信息
由于本文主要是讲述如何使用Commons-fileupload,所以为了便于修改、调试,上传文件的保存使用一个JSP文件来进行处理 。我们将浏览器上传来的所有文件保存在一个指定目录下并在页面上显示所有上传文件的详细信息 。保存页面处理结果见图2所示 。
图2 保存页面
下面来看看save.jsp的代码:
%
/**
* 演示文件上传的处理
* @author a href=“mailto:winter.lau@163.com”Winter Lau/a
* @version $Id: save.jsp,v 1.00 2003/03/01 10:10:15
*/
%
%@ page language=“java”contentType=“text/html;charset=GBK”%
%@ page import=“java.util.*”%
%@ page import=“org.apache.commons.fileupload.*”%
html
head
title保存上传文件/title
/head
%
String msg = “”;
FileUpload fu = new FileUpload();
// 设置允许用户上传文件大小,单位:字节
fu.setSizeMax(10000000);
// maximum size that will be stored in memory?
// 设置最多只允许在内存中存储的数据,单位:字节
fu.setSizeThreshold(4096);
// 设置一旦文件大小超过getSizeThreshold()的值时数据存放在硬盘的目录
fu.setRepositoryPath(“C:\\TEMP”);
//开始读取上传信息
List fileItems = fu.parseRequest(request);
%
body bgcolor=“#FFFFFF”text=“#000000” leftmargin=“0”topmargin=“40”marginwidth=“0” marginheight=“0”
font size=“6”color=“blue”文件列表:/font
center
table cellpadding=0 cellspacing=1 border=1 width=“100%”
tr
td bgcolor=“#008080”文件名/td
td bgcolor=“#008080”大小/td
/tr
%
// 依次处理每个上传的文件
Iterator iter = fileItems.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
//忽略其他不是文件域的所有表单信息
if (!item.isFormField()) {
String name = item.getName();
long size = 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/
a href=https://www.04ip.com/post/“upload.html”返回上传页面/a
/center
/body
/html
在这个文件中需要注意的是FileUpload对象的一些参数值的意义 , 如下面代码所示的三个参数sizeMax、sizeThreshold、repositoryPath:
FileUpload fu = new FileUpload();
// 设置允许用户上传文件大小,单位:字节
fu.setSizeMax(10000000);
// maximum size that will be stored in memory?
// 设置最多只允许在内存中存储的数据,单位:字节
fu.setSizeThreshold(4096);
// 设置一旦文件大小超过getSizeThreshold()的值时数据存放在硬盘的目录
fu.setRepositoryPath(“C:\\TEMP”);
这3个参数的意义分别为:
SizeMax 用来设置上传文件大小的最大值,一旦用户上传的文件大小超过该值时将会抛出一个FileUploadException异常,提示文件太大;
SizeThreshold 设置内存中缓冲区的大小 , 一旦文件的大小超过该值的时候,程序会自动将其它数据存放在repositoryPath指定的目录下作为缓冲 。合理设置该参数的值可以保证服务器稳定高效的运行;
RepositoryPath 指定缓冲区目录 。
使用注意事项
从实际应用的结果来看该模块能够稳定高效的工作 。其中参数SizeThreshold的值至关重要,设置太大会占用过多的内存,设置太小会频繁使用硬盘作为缓冲以致牺牲性能 。因此 , 设置该值时要根据用户上传文件大小分布情况来设定 。例如大部分文件大小集中在100KB左右,则可以使用100KB作为该参数的值,当然了再大就不合适了 。使用commons-fileupload来处理HTTP文件上传的功能模块很小,但是值得研究的东西很多 。
关于java图片批量上传代码和java图片批量上传代码是什么的介绍到此就结束了 , 不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读