2012-03-22 24 views
0

eclipse IDEを使用して開発しているアプリケーションです。私のアプリケーションにはファイルアップロード機能があります。アップロードされたファイルはwebcontentディレクトリに保存されていません

ファイルのアップロード方法と保存方法を達成できました。しかし、問題は、アップロードされたファイルが動的Webプロジェクトディレクトリに格納されていないことです。

.metadataフォルダ有する経路

ファイルと私のサーバーのディレクトリにファイルをアップロードGETストア:/// E:/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/ wtpwebapps/

WebContent/upload/imagesのような画像フォルダを持つアップロードフォルダを持つWebcontentフォルダにアップロードしたフォルダを保存します。

画像ファイルを表示できますが、希望するパスは上記のようなものです。私は、アップロードされたファイル

@RequestMapping(value = "/company/UploadFile.action", method = RequestMethod.POST) 
    public @ResponseBody String uploadFile(FileUploadBean uploadItem, BindingResult result,HttpServletRequest request, HttpServletResponse response) { 
     System.out.println("FILE UPLOAD ITEM SI SSLSL ::"+uploadItem); 

     ExtJSFormResult extjsFormResult = new ExtJSFormResult(); 

     if (result.hasErrors()){ 
      for(ObjectError error : result.getAllErrors()){ 
       System.err.println("Error: " + error.getCode() + " - " + error.getDefaultMessage()); 
      } 

      //set extjs return - error 
      extjsFormResult.setSuccess(false); 

      return extjsFormResult.toString(); 
     } 

     // Some type of file processing... 
     System.err.println("-------------------------------------------"); 
     System.err.println("Test upload: " + uploadItem.getFile().getOriginalFilename()); 
     System.err.println("-------------------------------------------"); 

     try{ 

      MultipartFile file = uploadItem.getFile(); 
      String fileName = null; 
      InputStream inputStream = null; 
      OutputStream outputStream = null; 
      if (file.getSize() > 0) { 
       inputStream = file.getInputStream(); 
       /*if (file.getSize() > 10000) { 
        System.out.println("File Size:::" + file.getSize()); 
        extjsFormResult.setSuccess(false); 

        return extjsFormResult.toString(); 
       }*/ 
       System.out.println("also path ::"+request.getRealPath("") + "/upload/images/"); 
       System.out.println("PATHI SIS SIS"+this.getClass().getProtectionDomain().getCodeSource().getLocation().getPath()); 
       System.out.println("size::" + file.getSize()); 

       InetAddress addr = InetAddress.getLocalHost(); 
       byte[] ipAddr = addr.getAddress(); 

       System.out.println("HOST NAME"+request.getRealPath("ResourceMgt")); 
       System.out.println("HOST ADDR"+addr.getHostAddress()); 
       System.out.println("HOST "+request.getRequestURI()); 
       System.out.println("HOST "+request.getRequestURL()); 

       fileName = request.getRealPath("") + "/upload/images/" 
         + file.getOriginalFilename(); 
       outputStream = new FileOutputStream(fileName); 
       System.out.println("FILEN ANEM AND PATH IS ::"+fileName); 
       System.out.println("fileName:" + file.getOriginalFilename()); 

       int readBytes = 0; 
       byte[] buffer = new byte[40000]; 
       while ((readBytes = inputStream.read(buffer, 0, 40000)) != -1) { 
        outputStream.write(buffer, 0, readBytes); 
       } 

       companyservice.saveImages(file.getOriginalFilename(),fileName); 

       outputStream.close(); 
       inputStream.close(); 
      } 
     }catch (Exception e) { 
      // TODO: handle exception 
      e.printStackTrace(); 
     } 

     //set extjs return - sucsess 
     extjsFormResult.setSuccess(true); 

     return extjsFormResult.toString(); 
    } 

を保存するために使用していますコードの下 は私が私のWebContentにアップロードされたファイルは、imagesフォルダにアップロードフォルダを持つ保存することができますどのように私を提案してください。上記のコードは完全に動作しています。パスを指定する際に問題があります。

答えて

0

outputStreamの出力先を変更しようとしましたか?代わりにrequest.getRealPath("")

fileName = request.getRealPath("") + "/upload/images/" 
+ file.getOriginalFilename(); 

絶対先を入れたりクラスパスで遊びます。たとえば:

fileName = "/opt/tomcat/webapps/upload/images/" 
+ file.getOriginalFilename(); 
+0

あなたは私が私のJavaのクラス –

+0

ではWebContentパスを取得することができますまあ、それは親切にdepensどのように私に言ってくださいすることができあなたが開発しているアプリケーションのしかし、このページに行く:http://forums.whirlpool.net.au/archive/1232043 –

0

フォーラムのメンバー

は、今私は正常にファイルをアップロードすることですが、ファイルがサーバーにデプロイディレクトリに格納されます。

プロジェクトを削除してプロジェクトをTomcatサーバー6.0に再配備すると、アップロードしたすべてのファイルがそのファイルから削除されます。

Tomcatサーバー6.0で私のサーバー側のテクノロジとしてJAVAを使用しています。

0

ファイルを正常にアップロードできましたが、ファイルはサーバーの展開されたディレクトリに保存されます。

プロジェクトを削除してプロジェクトをTomcatサーバー7.0に再配備すると、アップロードしたすべてのファイルがそこから削除されます。

のEclipse IDEで、私はTomcatサーバー7.0と私のサーバーサイド技術としてJAVAとJSFを使用しています

関連する問題