का उपयोग कर Ubuntu सर्वर पर फ़ाइलें अपलोड कर रहा है कुप्पी 500 आंतरिक सर्वर त्रुटि के साथ विफल

वोट
36

मैं अपाचे 2 और uWSGI के साथ एक उबंटू 18.04 सिस्टम पर एक कुप्पी अनुप्रयोग चल रहा हूँ। जब मैं एक निर्देशिका के लिए फ़ाइलों को अपलोड करने की कोशिश, यह एक 500 त्रुटि कोड के साथ विफल रहता है। लिपि में लिखी जाती है __init__.pyऔर यहां उपलब्ध हैं: /var/www/FlaskApp/FlaskApp/__init__.py। अपलोड की गई फ़ाइलों के लिए निर्देशिका में स्थित है: /var/www/FlaskApp/FlaskApp/uploads। स्क्रिप्ट ऐसा दिखाई देता है:

from flask import Flask, render_template, request, url_for, redirect, 
send_from_directory, send_file, flash
from werkzeug.utils import secure_filename
import os

UPLOAD_FOLDER = '/var/www/FlaskApp/FlaskApp/uploads'
#ALLOWED_EXTENSIONS = set(['txt', 'pdf', 'png', 'jpg', 'jpeg', 'gif'])

app = Flask(__name__)

app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER

@app.route('/test/', methods=['GET', 'POST'])
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))
            #return redirect(url_for('uploaded_file',
                                    #filename=filename))
    return '''
    <!doctype html>
    <title>Upload new File</title>
    <h1>Upload new File</h1>
    <form method=post enctype=multipart/form-data>
      <input type=file name=file>
      <input type=submit value=Upload>
    </form>
    '''     


@app.route('/uploads/<filename>')
def uploaded_file(filename):
    return send_from_directory(app.config['UPLOAD_FOLDER'],
                               filename)        

                            

if __name__ == '__main__':
    app.run()

यह HTML पृष्ठ प्रदर्शित करता है, लेकिन जब मैं फ़ाइलों का चयन करने के बाद सबमिट करें क्लिक करें, यह विफल रहता है। मैं दोनों के साथ और टिप्पणियों के बिना कोड को चलाने की कोशिश की है, लेकिन यह अभी भी विफल रहता है। : मैं पर त्रुटि होती है लगता है file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename)) मैं भी कोशिश की है कई अलग अलग रास्तों। यह कुछ एप्लिकेशन के विन्यास के साथ कुछ गलत हो सकता है? मुझे नहीं लगता कि मैं एक असली settings.py है, कि यदि कोई फर्क करना चाहिए।

जवाब के लिए धन्यवाद बहुत

बोतल अनुप्रयोग त्रुटि-लॉग यह दिखाता है:

 ERROR:flask.app:Exception on /test/ [POST], referer: http:the.servers.ip.adress/test/
 Traceback (most recent call last):, referer: http:the.servers.ip.adress/test/
File /usr/local/lib/python3.6/dist-packages/flask/app.py, line 2292, in wsgi_app, referer: http:the.servers.ip.adress/test/
response = self.full_dispatch_request(), referer: http:the.servers.ip.adress/test/
File /usr/local/lib/python3.6/dist-packages/flask/app.py, line 1815, in full_dispatch_request, referer: http:the.servers.ip.adress/test/
rv = self.handle_user_exception(e), referer: http:the.servers.ip.adress/test/
File /usr/local/lib/python3.6/dist-packages/flask/app.py, line 1718, in handle_user_exception, referer: http:the.servers.ip.adress/test/
reraise(exc_type, exc_value, tb), referer: http:the.servers.ip.adress/test/
File /usr/local/lib/python3.6/dist-packages/flask/_compat.py, line 35, in reraise, referer: http:the.servers.ip.adress/test/
raise value, referer: http:the.servers.ip.adress/test/
File /usr/local/lib/python3.6/dist-packages/flask/app.py, line 1813, in full_dispatch_request, referer: http:the.servers.ip.adress/test/
rv = self.dispatch_request(), referer: http:the.servers.ip.adress/test/
File /usr/local/lib/python3.6/dist-packages/flask/app.py, line 1799, in dispatch_request, referer: http:the.servers.ip.adress/test/
return self.view_functions[rule.endpoint](**req.view_args), referer: http:the.servers.ip.adress/test/
File /var/www/FlaskApp/FlaskApp/__init__.py, line 27, in upload_file, referer: http:the.servers.ip.adress/test/
file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename)), referer: http:the.servers.ip.adress/test/
File /usr/local/lib/python3.6/dist-packages/werkzeug/datastructures.py, line 2725, in save, referer: http:the.servers.ip.adress/test/
dst = open(dst, 'wb'), referer: http:the.servers.ip.adress/test/

PermissionError: [Errno 13] Permission denied: '/var/www/FlaskApp/FlaskApp/uploads/an_image.jpg', referer: http:the.servers.ip.adress/test/
referer: http:the.servers.ip.adress/test/

ERROR:flask.app:Exception on /prov/ [POST], referer: http:the.servers.ip.adress/test/
Traceback (most recent call last):, referer: http:the.servers.ip.adress/test/
26/02/2019 को 21:34
उपयोगकर्ता
अन्य भाषाओं में...                            


2 जवाब

वोट
0

ठीक है, मैं समाधान मिल गया। जब आप बोतल अनुप्रयोग के अंदर एक फ़ोल्डर टोकरा, आप इसे चूक से अधिक अनुमतियां दे करना है। मेरे मामले WinSCP का उपयोग कर में, मैं सिर्फ हर बॉक्स में क्लिक किया।

27/02/2019 को 09:48
का स्रोत उपयोगकर्ता

वोट
0

मैं सिर्फ अपने ही में कोड का परीक्षण यह पूरी तरह सुनिश्चित करें कि आप अपने अपलोड फ़ोल्डर की अनुमति सिर्फ यह करने के लिए लिखने की अनुमति देने के लिए और पथ सही होना चाहिए वहाँ किसी भी गलती यह के अलावा अन्य नहीं है काम करता है।

27/02/2019 को 09:57
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more