From 5e9709bc5b245139fb1c4fa5ec181bff2960aad5 Mon Sep 17 00:00:00 2001 From: Araq Date: Mon, 3 Jun 2019 14:59:51 +0200 Subject: [PATCH] fixes #91 --- karax/kajax.nim | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/karax/kajax.nim b/karax/kajax.nim index 7fce2c9..a9a8a2a 100644 --- a/karax/kajax.nim +++ b/karax/kajax.nim @@ -8,7 +8,7 @@ import jsffi except `&` import jscore import dom -type +type ProgressEvent* {.importc.}= object loaded*: float total*: float @@ -33,9 +33,19 @@ proc send*(r: HttpRequest, data: Blob) {.importcpp: "#.send(#)".} proc open*(r: HttpRequest; meth, url: cstring; async: bool) {.importcpp: "#.open(@)".} proc newRequest*(): HttpRequest {.importcpp: "new XMLHttpRequest(@)".} -proc uploadFile*(url: cstring, file: Blob, onprogress :proc(data: ProgressEvent), +when not declared(dom.File): + type + DomFile = ref FileObj + FileObj {.importc.} = object of Blob + lastModified: int + name: cstring +else: + type + DomFile = dom.File + +proc uploadFile*(url: cstring, file: Blob, onprogress :proc(data: ProgressEvent), cont: proc (httpStatus: int; response: cstring); - headers: openarray[(cstring, cstring)] = []) = + headers: openarray[(cstring, cstring)] = []) = proc contWrapper(httpStatus: int; response: cstring) = cont(httpStatus, response) @@ -44,7 +54,7 @@ proc uploadFile*(url: cstring, file: Blob, onprogress :proc(data: ProgressEvent) var formData = newFormData() formData.append("upload_file",file) - formData.append("filename", dom.File(file).name) + formData.append("filename", DomFile(file).name) let ajax = newRequest() ajax.open("POST", url, true) for a, b in items(headers):