Mercurial > prosody-modules
comparison mod_http_upload/mod_http_upload.lua @ 2469:43f7637f0143
mod_http_upload: Make sure that target file does not exist prior to upload
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Sun, 29 Jan 2017 17:31:28 +0100 |
| parents | 3bff2848af12 |
| children | 9ff809591fbc |
comparison
equal
deleted
inserted
replaced
| 2468:3bff2848af12 | 2469:43f7637f0143 |
|---|---|
| 121 module:log("warn", "Uploaded file too large %d bytes", #event.request.body); | 121 module:log("warn", "Uploaded file too large %d bytes", #event.request.body); |
| 122 return 400; | 122 return 400; |
| 123 end | 123 end |
| 124 pending_slots[path] = nil; | 124 pending_slots[path] = nil; |
| 125 local full_filename = join_path(dirname, filename); | 125 local full_filename = join_path(dirname, filename); |
| 126 if lfs.attributes(full_filename) then | |
| 127 module:log("warn", "File %s exists already, not replacing it", full_filename); | |
| 128 return 409; | |
| 129 end | |
| 126 local fh, ferr = io.open(full_filename, "w"); | 130 local fh, ferr = io.open(full_filename, "w"); |
| 127 if not fh then | 131 if not fh then |
| 128 module:log("error", "Could not open file %s for upload: %s", full_filename, ferr); | 132 module:log("error", "Could not open file %s for upload: %s", full_filename, ferr); |
| 129 return 500; | 133 return 500; |
| 130 end | 134 end |
