Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python angular js上传文件功能不支持';I don’我没有按预期工作_Python_Angular_Flask - Fatal编程技术网

Python angular js上传文件功能不支持';I don’我没有按预期工作

Python angular js上传文件功能不支持';I don’我没有按预期工作,python,angular,flask,Python,Angular,Flask,使用angular使上载文件功能和flask作为后端服务器。 但是,当我尝试上载文件时,总是会收到错误消息。 这是密码 HTML元素: <input class="paper-trade__upload-button_hidden" type="file" id="csv-upload" name="file" accept=".csv" ngf-max-size="2MB" (change)="csvToArray($event)"> 请求机构: uploadPa

使用angular使上载文件功能和flask作为后端服务器。 但是,当我尝试上载文件时,总是会收到错误消息。 这是密码

HTML元素:

        <input class="paper-trade__upload-button_hidden" type="file" id="csv-upload" name="file" accept=".csv" ngf-max-size="2MB" (change)="csvToArray($event)">
请求机构:

uploadPaperTradeCSV(brokerName: string, file): Observable<Trade> {
const httpOptions = {
  headers: new HttpHeaders({
    'Content-Type': 'multipart/form-data',
  }),
};
let formData: FormData = new FormData();
formData.append('file', file);

return this.http.post<Trade>(`${this.baseUrl}/trade/upload?broker_name=${brokerName}`, formData, httpOptions)
  .pipe(
    tap(data => console.log(data)),
);
但是我尝试上传文件,它总是返回“找不到文件”消息。使用邮递员发送请求时购买,效果很好。我在这里停留了很长时间。。。。。
任何帮助都将不胜感激,感谢您的帮助

我终于找到了这个问题的解决方案,删除uploadPaperTradeCSV()方法中的“const-httpOptions={}”staff,然后将工作正常。因此新代码如下所示

uploadPaperTradeCSV(brokerName: string, file): Observable<Trade> {

let formData: FormData = new FormData();
formData.append('file', file);

return this.http.post<Trade>(`${this.baseUrl}/trade/upload?broker_name=${brokerName}`, formData, httpOptions)
  .pipe(
    tap(data => console.log(data)),
);
uploadPaperTradeCSV(brokerName:string,file):可观察{
让formData:formData=newformdata();
formData.append('file',file);
返回this.http.post(`this.baseUrl}/trade/upload?broker_name=${brokerName}`,formData,httpOptions)
.烟斗(
点击(数据=>console.log(数据)),
);

但我仍然不明白为什么…

以及错误消息“找不到文件”是什么,它只是在request.files中找不到关键字“file”。
    @hello.route('/upload', methods=['POST'])
@jwt_required
def import_trades():
    if request.method == 'POST':
        broker_name = request.args.get('broker_name', '')
        data = request.form.get('file')

        if 'file' not in request.files:
            return jsonify({'fail': 'no file found'})
        file = request.files['file']
        if not file.filename:
            return jsonify({'fail': 'no file selected'})
        file_format = file.filename.split('.', 1)[1].lower()
        allowed_extension = set(['csv'])
        if file and file_format in allowed_extension:
            filename = secure_filename(file.filename)
            file_path = os.path.join(UPLOAD_FOLDER, filename)
            file.save(file_path)
            response = trade_orm.convert_file_data(broker_name, file_path)
            if os.path.exists(file_path):
                os.remove(file_path)
            return response
        else:
            return jsonify({'fail': 'please input valid info'})
uploadPaperTradeCSV(brokerName: string, file): Observable<Trade> {

let formData: FormData = new FormData();
formData.append('file', file);

return this.http.post<Trade>(`${this.baseUrl}/trade/upload?broker_name=${brokerName}`, formData, httpOptions)
  .pipe(
    tap(data => console.log(data)),
);