【发布时间】:2019-11-22 16:33:18
【问题描述】:
我正在尝试创建允许用户输入照片并将该照片保存到文件夹“/home/HassanSherien/mysite/Shape_Image”的代码。我已按照以下链接中给出的步骤操作,但我不断收到一条错误消息,指出“未找到,在服务中找不到请求的 URL。如果您手动输入了 URL,请检查您的拼写并重试。”
Python:
import os
from flask import Flask, request, redirect, url_for
from werkzeug.utils import secure_filename
UPLOAD_FOLDER = '/home/HassanSherien/mysite/Shape_Image'
ALLOWED_EXTENSIONS = set(['txt', 'pdf', 'png', 'jpg', 'jpeg', 'gif'])
app = Flask(__name__)
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
def upload_file():
if request.method == 'POST':
if 'file' not in request.files:
flash('No file part')
return redirect(request.url)
file = request.files['file']
if file.filename == '':
flash('No selected file')
return redirect(request.url)
if file and allowed_file(file.filename):
filename = secure_filename(file.filename)
file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
HTML:
<form action="myform.cgi">
<input type="file" name="fileupload" value="fileupload"
id="file`upload">
<label for="fileupload"> Select a file to upload</label>
<br>
<input type="image" src="/wp-content/uploads/sendform.png"
alt="Submit" width="100">
</form>
我也在线上报错 如果文件和allowed_file(file.filename): 上面写着“未定义的名称'allowed_file'”
【问题讨论】:
-
我建议先阅读一个基本的 Flask 教程来学习如何在尝试编写之前指定 URL。这将是一个好的开始:blog.pythonanywhere.com/169
-
谢谢!另外,如果我在此之后确实有后续问题,我应该在这里发表评论还是应该创建一个新线程? @GilesThomas
-
您的代码是否尝试在图像完全上传之前对其执行 GET 操作?您是否定义了 GET http 路由以在上传文件后获取文件?将文件放在服务器上是不够的 - 您的服务需要安全地为它们提供服务。另外,您能否说明您是否已调试代码以及您在服务器端验证了什么? IE。文件被保存了吗?或者该方法永远不会被调用? POST 是在上传之前还是之后给你一个 404 还是别的什么?您是否打开了 Web 控制台并检查正在发生的呼叫?感谢您提供更多信息添加
-
没有照片上传正常,但这是我第二次点击提交时收到错误消息。该文件未保存为我设置为输入这些照片的文件夹为空。 Ido 打开了一个网络控制台,但我不确定如何检查正在发生的呼叫!我觉得我的问题是在我的 python 和我的 html 代码之间,没有迹象表明显示在我的 html 代码上的提交按钮是应该触发保存在我的 python 代码中的按钮,如果这有意义的话。 @TheJeff
标签: pythonanywhere