Fat Free无法通过文件上传捕获Axios FormData

时间:2017-01-16 01:04:28

标签: javascript fat-free-framework axios

我使用Axios为Fat Free做了AJAX请求。

这是收件人代码:

$files = \Web::instance()->receive(function($file){
    var_dump($file);
    return (substr($file["type"],0,6)=="image/");
}, true);
if($files===false)
    throw new \Exception\UnexpectedInput("U didn't provide any file");

这里是发件人(目前我使用Axios来完成这项工作。)

return new Promise((ok,err)=>{
    var datanya = new FormData();
    datanya.append(this.generateRandomString(), new Blob([file[0]], {type:"image/jpeg"}), "image.jpg");
    // generate id for cancelation.
    this.uploadCancelSource = CancelToken.source();
    var config = {
        cancelToken: this.uploadCancelSource.token,
        onUploadProgress:(e)=>{
            this.uploadProgress = Math.round( (e.loaded * 100) / e.total );
        }
    }
    APICall.put("invoice/bukti", datanya, config).then(e=>{
    });
});

有效负载对我来说似乎没问题,我的意思是,它传输文件名,内容类型和表单名称。但FatFree Web的类没有抓住它。它只是告诉它是application/octet-stream

这是有效载荷的屏幕截图

Request Dumping SS

这是来自\Web::instance()->receive

的转储数据

Dumped data from server

你知道这个问题吗?

1 个答案:

答案 0 :(得分:0)

Web的当前行为是主要问题。正如您在source code上看到的,或看到documentation,它在不同的请求方法上有不同的行为。

有点黑客,可以用来解决当前的问题,但我决定改变请求方法。