2016-09-22 4 views
0

Ich habe noch nie an irgendeiner Art der serverseitigen Sprache gearbeitet. Ich fange an, es mit schnellen zu lernen. Also meine Entschuldigung im Voraus, wenn ich etwas albern frage.Wie lade ich Dateien mit Perfect 2.0 swift hoch?

so hier ist die Geschichte

ich eine Datei an

<path to my project>/Resources/fileuplaods 

i wurde nach Perfekte 2.0-Dokumentation hochladen möchten, hier ist mein Code: -

routes.add(method: .post, uri: "/webroot/uploads") { (request, response) in 

let fileDir = Dir("./Resources/fileuploads") 
print("fileDir - \(fileDir)") 
do { 
    try fileDir.create() 
} 
catch { 
    print(error) 
} 

if let uploads = request.postFileUploads , uploads.count > 0 { 
    var ary = [[String : Any]]() 
    for upload in uploads { 
     ary.append([ 
      "fieldName":upload.fieldName, 
      "contentType":upload.contentType, 
      "fileName":upload.fileName, 
      "fileSize":upload.fileSize, 
      "tmpFileName":upload.tmpFileName, 
      ]) 

     let thisFile = File(upload.tmpFileName) 
     do { 
      let _ = try thisFile.moveTo(path: fileDir.path + upload.fileName , overWrite: true) 
     } 
     catch { 
      print(error) 
     } 
    } 
    print("ary - \(ary)") 

} 
response.setBody(string: "API Call uploads") 
response.completed() 
} 

das Folgende mein Ausgang: -

fileDir - Dir(internalPath: "./Resources/fileuploads/") 
fileError(21, "Is a directory /Users/username/Documents/flone/fltwo/projname/Packages/PerfectLib-2.0.0/Sources/PerfectLib/File.swift moveTo(path:overWrite:) 286") 
ary - [["contentType": "image/jpeg", "fileSize": 18587, "fileName": "", "fieldName": "", "tmpFileName": "/tmp/perfect_upload_rodB53"]] 

Was mache ich falsch?

Antwort

1

Das Problem gefunden. Eigentlich möchte ich Dateiname im Zielverzeichnis hinzufügen.

hatte

thisFile.moveTo(path: fileDir.path , overWrite: true)

mit

thisFile.moveTo(path: fileDir.path + upload.fileName , overWrite: true) 
ersetzen
Verwandte Themen