I'm trying to use Filestack iOS SDK inside React Native project. So I passing local file URL from JavaScript and using the following code to upload image
@objc(upload:callback:)
func upload(file: String, callback: @escaping RCTResponseSenderBlock) {
let localURL = URL(string: file)!
client?.upload(from: localURL, uploadProgress: { (progress) in
// Here you may update the UI to reflect the upload progress.
print("progress = \(String(describing: progress))")
}) { (response) in
// Try to obtain Filestack handle
if let json = response?.json, let handle = json["handle"] as? String {
// Use Filestack handle
print(json)
callback([json]);
} else if let error = response?.error {
// Handle error
print(error)
callback([error]);
}
print(response)
}
}
I'm getting progress data so I supose image is uploading. But getting error - aborted
here is a print of response in the MultipartUpload.swift
(request: Optional(https://upload.filestackapi.com/multipart/complete),response: Optional(<NSHTTPURLResponse: 0x6000032664e0> { URL: https://upload.filestackapi.com/multipart/complete } { Status Code: 400, Headers {
"Access-Control-Allow-Headers" = (
"Origin,Content-Type,Accept,User-Agent,UJID,UJID-Path,Filestack-Upload-Region,Filestack-Source"
);
"Access-Control-Allow-Methods" = (
"HEAD,OPTIONS,POST,PUT"
);
"Access-Control-Allow-Origin" = (
"*"
);
Allow = (
"HEAD, OPTIONS, POST, PUT"
);
Connection = (
"keep-alive"
);
"Content-Length" = (
128
);
"Content-Type" = (
"text/plain; charset=utf-8"
);
Date = (
"Thu, 13 Dec 2018 17:11:35 GMT"
);
Server = (
nginx
);
"X-Filestack-Apikey" = (
xxxxxxxxxxxxxx
);
} }), json: Optional(["i": , "c": {
ujid = "c916857b-0a22-4305-9324-6f1055b610f2";
"ujid_path" = "ul-0";
}, "error": Parameters are invalid, "t": 1544721095]), error: nil)
Am I doing anything wrong?
Following pull request https://github.com/filestack/filestack-swift/pull/12 resolve my issue.