2015-08-19 3 views
0

Я пытаюсь загрузить файл, но всякий раз, когда я пытаюсь загрузить файл и печатать имя файла, я получаю null и генерируется файл .tmp. Я следил за практикой mkyong's here. Я также пробовал предложения от SO в этом link. К сожалению, я все еще застрял в этом, и предположим, что совершил ошибку, которую я постоянно просматриваю. Я использую tomcat7. Ниже приведены мои файлы:struts2 file upload-получение нулевого имени файла

JSP
<s:form id="login" name="login" method="post" action="uploadResume" enctype="multipart/form-data"> 
    <s:file name="uploadFile" label="Select a File to upload" size="40"/> 
    <s:submit value="submit" name="submit" /> 
</s:form> 

struts.xml

<constant name="struts.multipart.saveDir" value="/Users/shibasish/Documents/workspace/MSVenture/src/main/resources" /> 
<action name="uploadResume" class="com.msventure.web.actions.CompleteProfileAction" method="uploadResume"> 
      <interceptor-ref name="exception"/> 
       <interceptor-ref name="i18n"/> 
       <interceptor-ref name="fileUpload"> 
       <param name="allowedTypes">text/plain</param> 
       <param name="maximumSize">10240</param> 
      </interceptor-ref> 
       <result name="success">/profile.jsp</result> 
       <result name="fail">/login.jsp</result> 
       <result name="index">/index.jsp</result> 
        <result name="login">/talent.jsp</result> 
      </action> 

действия класса

 private File uploadFile; 
    private String uploadFileFileName; 
    public String uploadResume(){ 
      try{ 
      String filePath = "/Users/shibasish/Documents"; 
      System.out.println("Server path:" + filePath); 
      System.out.println("File Name:" + uploadFileFileName); 
      File fileToCreate = new File(filePath, uploadFileFileName);   
      FileUtils.copyFile(uploadFile, fileToCreate); 
      }catch(Exception e){}  
      return "success"; 
     } 
public File getUploadFile() { 
     return uploadFile; 
    } 

    public void setUploadFile(File uploadFile) { 
     this.uploadFile = uploadFile; 
    } 

    public String getUploadFileFileName() { 
     return uploadFileFileName; 
    } 

    public void setUploadFileFileName(String uploadFileFileName) { 
     this.uploadFileFileName = uploadFileFileName; 
    } 

pom.xml

<dependency> 
    <groupId>commons-fileupload</groupId> 
    <artifactId>commons-fileupload</artifactId> 
    <version>1.2.1</version> 
</dependency> 
<dependency> 
    <groupId>commons-io</groupId> 
    <artifactId>commons-io</artifactId> 
    <version>1.3.2</version> 
</dependency> 

Пожалуйста, обратите внимание, мутаторов установлены в классе.

+0

Во всех браузерах? –

+0

Да .. я пробовал в chrome и safari.i в настоящее время запускаю его в tomcat7 – coolmego

+1

Пробовал ли вы с более полным пакетом перехватчика в качестве проверки здравомыслия? –

ответ

0

Я пробовал использовать более совершенный стек перехватчика, и он отлично работает. я изменил следующее из файловой загрузки в defaultStack перехватчик: struts.xml

<action name="uploadResume" class="com.msventure.web.actions.CompleteProfileAction" method="uploadResume"> 
      <interceptor-ref name="defaultStack"> 
    <param name="fileUpload.allowedTypes">text/plain</param> 
</interceptor-ref> 
     <result name="success">/profile.jsp</result> 
     <result name="fail">/login.jsp</result> 
     <result name="index">/index.jsp</result> 
      <result name="login">/talent.jsp</result> 
    </action> 
Смежные вопросы