我正在扑朔迷离中从事我的第一个项目。我有一个带有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());
}
答案 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/时,最后会得到一个/。