尝试将文件从Flutter应用程序上传到Web服务器时出现错误301

时间:2019-10-08 16:59:40

标签: flutter

我正在扑朔迷离中从事我的第一个项目。我有一个带有mysql的Web服务器,我在其中存储数据。我的public_html文件夹中有一个上传文件夹。

在扑朔迷离中,我拍了张照片,我想将该文件上传到服务器中的上载文件夹,并将该文件的地址保留在mysql中。

我需要将文件(jpg)发送到服务器。我找到了有关执行此操作的几种解释,编写了代码,但是现在它给了我301错误,我不明白为什么。

我检查了文件的路径,看起来不错。 我在Google中输入了为Uri提供的路径,它向我显示了我要复制文件的文件夹。

    Future uploadFile() async {
    var stream = new http.ByteStream(DelegatingStream.typed(_image.openRead()));
    var length = await _image.length();

    var uri = Uri.parse("http://www.teknopartner.cl/uploads");

    var request = new http.MultipartRequest("POST", uri);
    var multipartFile = new http.MultipartFile('file', stream, length,
        filename: basename(_image.path));

    request.files.add(multipartFile);
    var response = await request.send();
    print("listo " + response.statusCode.toString());
}

2 个答案:

答案 0 :(得分:1)

如果您的网址要求的是 https 请求而不是 http 请求,则您将收到此错误。

更改

final uri = Uri.http(url, path,query);

final uri = Uri.https(url, path,query);

这通常会解决此问题。

答案 1 :(得分:0)

嗨,您的URI错误。如果您尝试使用cURL发出请求,则会得到:

HTTP/1.1 301 Moved Permanently
Date: Tue, 08 Oct 2019 17:28:11 GMT
Server: Apache
Location: http://www.teknopartner.cl/uploads/
Content-Type: text/html; charset=iso-8859-1

如果看到指示已移动位置的位置,则在将URI更改为http://www.teknopartner.cl/uploads/时,最后会得到一个/。