当前位置:编程学习 > JAVA >>

j2ee

SSH上传图片问题如下:

jsp页面代码:
<input name="ulFname" id="ulFname" type="file"   size="30"  /> 

action代码:
package action;

import java.io.File;
import java.io.IOException;

import org.apache.commons.io.FileUtils;
import org.apache.struts2.ServletActionContext;


import com.opensymphony.xwork2.ActionSupport;

public class Pictest extends ActionSupport{

/**
 * 
 */
private static final long serialVersionUID = 1L;

private File uploadFile;
private String ulFname;

public File getUploadFile() {
return uploadFile;
}
public void setUploadFile(File uploadFile) {
this.uploadFile = uploadFile;
}
public String getUlFname() {
return ulFname;
}
    public void setUlFname(String ulFname) {
this.ulFname = ulFname;
}
public String execute(){

String RealPath=ServletActionContext.getServletContext().getRealPath("/images");
File file=new File(RealPath);

if(!file.exists()){file.mkdirs();}
try {
System.out.println("ulFname:"+ulFname);
FileUtils.copyFile(uploadFile, new File(file,ulFname));
String path=RealPath+"/"+ulFname;
ServletActionContext.getRequest().setAttribute("realpath", path);
System.out.println("path:"+path);
return SUCCESS;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return ERROR;
}}}

问题:
java.lang.NullPointerException: Source must not be null
org.apache.commons.io.FileUtils.copyFile(FileUtils.java:761)
org.apache.commons.io.FileUtils.copyFile(FileUtils.java:731)
action.Pictest.execute(Pictest.java:75)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)


--------------------编程问答-------------------- 除 --------------------编程问答-------------------- action.Pictest.execute(Pictest.java:75)
这个类 75行  ,抛空指针异常了 --------------------编程问答-------------------- 我知道是FileUtils.copyFile(uploadFile, new File(file,ulFname));抛出空指针异常,但我不知道到底哪里出错了! --------------------编程问答-------------------- 也不知道该如何修改,不知道我这个上传业务类代码有没有写错,我都不知道到底哪里出了问题 --------------------编程问答-------------------- ssh上传图片问题:
上传页面部分代码:
<form action="upload.jsp" method="post" name="form1" enctype="multipart/form-data">
<input name="fileName" type="file"   size="30"  />
</form>
upload.jsp部分代码:
<%SmartUpload su =new SmartUpload();
su.initialize(pageContext);
su.setMaxFileSize(500*1024*1024);
su.setAllowedFilesList("bmp,gif,jpg");
su.setDeniedFilesList("exe,bat,jsp,htm,html");
su.upload();
File myfile=su.getFiles().getFile(0);
String myfilename=myfile.getFileName();
String suffix=myfilename.substring(0, myfilename.lastIndexOf('.'));
String ext=su.getFiles().getFile(0).getFileExt();
int filesize=myfile.getSize();
String aa="E:\\biyesheji\\shiyan92\\shiyan91\\shiyan9\\WebContent\\images\\";
String trace=aa+myfilename;
System.out.println("tupianshangchuan");
myfile.saveAs(trace);%>
可以将图片保存于路径中

<form action="../shiyan9/page/Bjhd.action?name=fbhd" method="post" name="form1">
<input name="wz.wface" type="file"   size="30"  />
</form>
action中部分代码:
wzService.addWz(getWz());
可以将其名字保存于数据库中

现在问题,我想先将图片名字保存于数据库,如果success,再将图片保存于文件夹下,这两部分该如何衔接在一起?我犯难了  --------------------编程问答--------------------
引用 3 楼 xhn904718441 的回复:
我知道是FileUtils.copyFile(uploadFile, new File(file,ulFname));抛出空指针异常,但我不知道到底哪里出错了!

debug 一下 ,看看uploadFile 、file 、ulFname 这三个参数是不是哪个为null. --------------------编程问答--------------------
引用 6 楼 hucp2007 的回复:
引用 3 楼 xhn904718441 的回复:我知道是FileUtils.copyFile(uploadFile, new File(file,ulFname));抛出空指针异常,但我不知道到底哪里出错了!
debug 一下 ,看看uploadFile 、file 、ulFname 这三个参数是不是哪个为null.


我能问一下,这句什么意思么?
FileUtils.copyFile(uploadFile, new File(file,ulFname)); --------------------编程问答--------------------
引用 7 楼 xhn904718441 的回复:
引用 6 楼 hucp2007 的回复:
引用 3 楼 xhn904718441 的回复:我知道是FileUtils.copyFile(uploadFile, new File(file,ulFname));抛出空指针异常,但我不知道到底哪里出错了!
debug 一下 ,看看uploadFile 、file 、ulFname 这三个参数是不是哪个为null.

我能问一下,这句什么意思么?……

不是你代码么,问我什么意思。。。。copyFile,拷贝文件。 --------------------编程问答-------------------- FileUtils.copyFile(uploadFile, new File(file,ulFname));

ulFname:fkyj.jpg
file:E:\biyesheji\shiyan92\shiyan91\shiyan9\WebContent\images
uploadFile:null

--------------------编程问答-------------------- 楼主,这个debug一下 --------------------编程问答-------------------- <input name="ulFname" id="ulFname" type="file"   size="30"  /> 
private File uploadFile;
代码没有看完  但是这里肯定不对。。。。表单里的name  和action里的属性的名称必须一致   action才会接收到数据。。把name=“ulFname” 改成name=“uploadFile”
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,