2012-04-01 8 views
3

Grailsのweb-appにファイルアップロード機能を実装しています。これには、複数のファイル拡張を可能にする既存のコードの変更が含まれます。コードでは、私は、ファイルのパスが存在することを確認するブール値を実装しましたが、私はまだ/hubbub/images/testcommand/photo.gif (No such file or directory)画像はGrailsのファイルシステムにアップロードされます

私のアップロードのコードは、私は例外メッセージが出てい

def rawUpload = {  
    def mpf = request.getFile("photo") 
    if (!mpf?.empty && mpf.size < 200*1024){ 
     def type = mpf.contentType 
     String[] splitType = type.split("/") 

     boolean exists= new File("/hubbub/images/${params.userId}") 

     if (exists) { 
      mpf.transferTo(new File("/hubbub/images/${params.userId}/picture.${splitType[1]}")) 
     } else { 
      tempFile = new File("/hubbub/images/${params.userId}").mkdir() 
      mpf.transferTo(new File("/hubbub/images/${params.userId}/picture.${splitType[1]}")) 
     } 

    } 
} 

であることにFileNotFoundExceptionを取得しています

if (exists) { 
     mpf.transferTo(new File("/hubbub/images/${params.userId}/picture.${splitType[1]}")) 
} 

なぜ、私は単に有効な既存のパスと有効なファイル名と拡張子を組み合わせているので、このエラーが発生しますか?

答えて

5

なぜFileオブジェクトをBooleanに変換するとファイルが存在すると思われますか?

File dir = new File("/hubbub/images/${params.userId}") 
    if (!dir.exists()) { 
     assert dir.mkdirs() 
    } 
    mpf.transferTo(new File(dir, "picture.${splitType[1]}")) 
をお試しください
関連する問題