Errno.13 В доступе отказано при попытке доступа к файлам через HTML и Flask - PullRequest
0 голосов
/ 12 апреля 2020

Итак, я пытался выучить Flask в течение нескольких дней, и недавно я попытался создать простое приложение, которое позволяет загружать текстовый файл и считывать содержимое текстового файла. Мне удалось успешно загрузить файл, но когда я попытался прочитать файл, я получил эту ошибку:

PermissionError: [Errno 13] Permission denied: 'txt1.txt'

(я пытался прочитать файл с именем txt1.txt) Вот мой Python Код для этого:

from flask import Flask,request,render_template,redirect,url_for
from werkzeug import secure_filename

app=Flask(__name__)

@app.route("/",methods=["POST","GET","DELETE"])
def home():
    return render_template("ftest.html")
@app.route("/success",methods=["POST","GET","DELETE"])
def success():
if request.method=="POST":
    if request.files:
        f=request.files[ "file"]
        f.save(secure_filename(f.filename))
        print(f)
        rd=f.read()
        print(rd)
return "Hi"

if __name__=="__main__":
   app.run(debug=True)
   app.run()

Вот ftest. html:

<html>
<style>
body {
background-color: #8a1e1e ;
}
h1 {
color: white;
text-align: center;
font-family: impact;
font-size: 100px
}
form{
height: 22px;
width: 316px;
background-color: #4C83DC
}
</style>
<head>
<title>Txt Uploader</title> 
</head>
<body>
<h1>Txt Uploader</h1>
<form action = "/success" method = "post" enctype="multipart/form-data">
  <input type="file" name="file" />
  <input type = "submit" value="Upload">

  </form>
  </body>
  </html>

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 12 апреля 2020

Вот несколько возможных решений

  1. Измените разрешения для каталога, в который вы хотите сохранить, чтобы все пользователи имели права на чтение и запись.
  2. Убедитесь, что файл у вас есть попытка записи закрывается первой. Просто добавьте rd.close()
  3. Если вы используете Pycharm. Щелкните правой кнопкой мыши ваше приложение PyCharm и запустите его от имени администратора.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...