2012-04-01 6 views
3

Ich implementiere eine Datei-Upload-Funktionalität zu einer Web-App in Grails. Dazu gehört die Anpassung des vorhandenen Codes, um mehrere Dateierweiterungen zu ermöglichen. In dem Code habe ich ein boolean implementiert, um sicherzustellen, dass der Dateipfad vorhanden ist, aber ich bin immer noch ein FileNotFoundException bekommen, dass /hubbub/images/testcommand/photo.gif (No such file or directory)Image Upload in das Dateisystem in Grails

Mein Upload-Code

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]}")) 
     } 

    } 
} 

ist Ich erhalte die Ausnahmemeldung so bei

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

, warum geschieht dieser Fehler, da ich einfach bin eine gültige vorhandenen Pfad sowie einen gültigen Dateinamen und Erweiterung collatating?

Antwort

5

Warum denkst du, dass die Konvertierung von File Objekt in Existenz einer Datei zurückgibt? Versuchen

File dir = new File("/hubbub/images/${params.userId}") 
    if (!dir.exists()) { 
     assert dir.mkdirs() 
    } 
    mpf.transferTo(new File(dir, "picture.${splitType[1]}"))