簡體   English   中英

使用Flask將文件上傳到目錄時出現內部服務器錯誤代碼500

[英]Internal server error code 500 when uploading a file to a directory with Flask

這是基本文件上傳表單的后端Flask代碼

@app.route('/gallery',methods=['GET','POST'])
def gallery():

error = None
if request.method == "POST":
    if 'file' not in request.files:
        flash("No file part")
        return redirect(request.url)

    file = request.files['file']
    print file
    file.save(os.path.join(app.config['UPLOAD_FOLDER'], file.filename))
    flash('file uploaded successfully')

return render_template('gallery.html')

以及表單的HTML前端代碼:

<div class="page">
    <h2>Gallery</h2>

    <p>Upload image</p>
    <form action="{{ url_for('gallery') }}" method="post"  enctype="multipart/form-data">
        <input type="file" name="file"><input type="submit">
    </form>

</div>

我將UPLOAD_FOLDER變量設置為我想在Flask中存儲圖像的項目根目錄下的/ uploads目錄,但是,每次我提交要上傳的圖像時,都會出現500錯誤。

奇怪的是,如果我將文件上傳到項目目錄的根目錄,則不會收到錯誤消息。 僅當我將文件上傳到上傳目錄時,才會發生該錯誤。

[編輯]添加了追溯

Traceback (most recent call last):
  File "/Library/Python/2.7/site-packages/flask/app.py", line 1836, in __call__
    return self.wsgi_app(environ, start_response)
  File "/Library/Python/2.7/site-packages/flask/app.py", line 1820, in wsgi_app
    response = self.make_response(self.handle_exception(e))
  File "/Library/Python/2.7/site-packages/flask/app.py", line 1403, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "/Library/Python/2.7/site-packages/flask/app.py", line 1817, in wsgi_app
    response = self.full_dispatch_request()
  File "/Library/Python/2.7/sitea-packages/flask/app.py", line 1477, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/Library/Python/2.7/site-packages/flask/app.py", line 1381, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/Library/Python/2.7/site-packages/flask/app.py", line 1475, in full_dispatch_request
    rv = self.dispatch_request()
  File "/Library/Python/2.7/site-packages/flask/app.py", line 1461, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/Users/fred/personalsite/cool_site.py", line 70, in gallery
    file.save(os.path.join(app.config['UPLOAD_FOLDER'], file.filename))
  File "/Library/Python/2.7/site-packages/werkzeug/datastructures.py", line 2653, in save
    dst = open(dst, 'wb')
IOError: [Errno 2] No such file or directory: u'/uploads/Lecture 1.pages'

您的錯誤提示是該文件夾不存在。 創建文件夾/uploads/並使程序可讀。 如果該文件夾應相對於Flask目錄,則使用uploads/

我解決了這個問題。 發生這種情況是因為我的UPLOAD_FOLDER變量在應該相對於Flask目錄(uploads /)進行設置時被設置為/ uploads

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM