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)

解决方案 »

  1.   

    action.Pictest.execute(Pictest.java:75)
    这个类 75行  ,抛空指针异常了
      

  2.   

    我知道是FileUtils.copyFile(uploadFile, new File(file,ulFname));抛出空指针异常,但我不知道到底哪里出错了!
      

  3.   

    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,再将图片保存于文件夹下,这两部分该如何衔接在一起?我犯难了 
      

  4.   

    debug 一下 ,看看uploadFile 、file 、ulFname 这三个参数是不是哪个为null.
      

  5.   


    我能问一下,这句什么意思么?
    FileUtils.copyFile(uploadFile, new File(file,ulFname));
      

  6.   

    不是你代码么,问我什么意思。copyFile,拷贝文件。
      

  7.   

    FileUtils.copyFile(uploadFile, new File(file,ulFname));ulFname:fkyj.jpg
    file:E:\biyesheji\shiyan92\shiyan91\shiyan9\WebContent\images
    uploadFile:null
      

  8.   

    <input name="ulFname" id="ulFname" type="file"   size="30"  /> 
    private File uploadFile;
    代码没有看完  但是这里肯定不对。表单里的name  和action里的属性的名称必须一致   action才会接收到数据。。把name=“ulFname” 改成name=“uploadFile”