2016-09-22 3 views
0

Я никогда не работал на каких-либо языках на стороне сервера. Я начинаю изучать его быстро. Поэтому мои извинения заранее, если я спрошу что-то глупое.Как загрузить файлы с помощью Perfect 2.0 swift?

так вот история

Я хочу, чтобы загрузить файл

<path to my project>/Resources/fileuplaods 

я следовал Совершенная 2.0 документации, Вот мой код: -

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() 
} 

следующее мой выход: -

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

Что я делаю неправильно?

ответ

1

Обнаружена проблема. фактически я не добавлю имя файла в целевой каталог.

пришлось заменить

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

с

thisFile.moveTo(path: fileDir.path + upload.fileName , overWrite: true) 
Смежные вопросы