struts2多图片上传出现的问题,有的图片不能上传
有多幅图片,每幅图片单独上传可以,但多幅同时上传时,前面的有图片不能上传图片1:<inputtype="file"name="newspic">图片2:<inputtyp...
有多幅图片,每幅图片单独上传可以,但多幅同时上传时,前面的有图片不能上传
图片1:<input type="file" name="newspic">
图片2:<input type="file" name="newspic">
图3:<input type="file" name="newspic">
图片4:<input type="file" name="newspic">
public void copy(File myfile, String filepath)throws Exception{
try {
InputStream is=new FileInputStream(myfile);
OutputStream os=new FileOutputStream(filepath);
byte[] bt=new byte[4*1024];
int len=0;
while((len=is.read(bt))>0){
os.write(bt, 0, len);
}
os.close();
is.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public String savenews() throws Exception{
String picname=""; //上传后的图片名
MyJava ds=new MyJava();
if(!newspic.isEmpty()){ //newspic为input中name的名称
try{
String path=
ServletActionContext.getServletContext().getRealPath("/upload/newspic");
for(int i=0; i<newspic.size(); i++){
picname=fileName.get(i); //图片原名
//如果换成下面的文件名,前面的图片不能上传
//picname=ds.dateToString()+ds.subFileName(fileName.get(i));
//ds.dateToString()把日期转换
// ds.subFileName()取得图片的后缀名(包括后缀名之前的点)
String filepath=path+"/"+picname;
copy(newspic.get(i), filepath);
}
------------------
public class MyJava {
public String dateToString(){
Date nowDate=new Date();
SimpleDateFormat sf=new SimpleDateFormat("yyyyMMddHHmmssSSS");
String sDateString=sf.format(nowDate);
return sDateString;
}
public String subFileName(String fileName){ //
int begin=fileName.lastIndexOf(".");
return fileName.substring(begin);
}
}
问题出在picname=ds.dateToString()+ds.subFileName(fileName.get(i));
有多幅图片,每幅图片单独上传可以,但多幅同时上传时,前面的图片不能上传
已经解决了,原来是图片文件名重合问题,当我把日期转换为yyyyMMddHHmmssSSS时
出现重名, 展开
图片1:<input type="file" name="newspic">
图片2:<input type="file" name="newspic">
图3:<input type="file" name="newspic">
图片4:<input type="file" name="newspic">
public void copy(File myfile, String filepath)throws Exception{
try {
InputStream is=new FileInputStream(myfile);
OutputStream os=new FileOutputStream(filepath);
byte[] bt=new byte[4*1024];
int len=0;
while((len=is.read(bt))>0){
os.write(bt, 0, len);
}
os.close();
is.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public String savenews() throws Exception{
String picname=""; //上传后的图片名
MyJava ds=new MyJava();
if(!newspic.isEmpty()){ //newspic为input中name的名称
try{
String path=
ServletActionContext.getServletContext().getRealPath("/upload/newspic");
for(int i=0; i<newspic.size(); i++){
picname=fileName.get(i); //图片原名
//如果换成下面的文件名,前面的图片不能上传
//picname=ds.dateToString()+ds.subFileName(fileName.get(i));
//ds.dateToString()把日期转换
// ds.subFileName()取得图片的后缀名(包括后缀名之前的点)
String filepath=path+"/"+picname;
copy(newspic.get(i), filepath);
}
------------------
public class MyJava {
public String dateToString(){
Date nowDate=new Date();
SimpleDateFormat sf=new SimpleDateFormat("yyyyMMddHHmmssSSS");
String sDateString=sf.format(nowDate);
return sDateString;
}
public String subFileName(String fileName){ //
int begin=fileName.lastIndexOf(".");
return fileName.substring(begin);
}
}
问题出在picname=ds.dateToString()+ds.subFileName(fileName.get(i));
有多幅图片,每幅图片单独上传可以,但多幅同时上传时,前面的图片不能上传
已经解决了,原来是图片文件名重合问题,当我把日期转换为yyyyMMddHHmmssSSS时
出现重名, 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询