2016-05-20 3 views
1

Я следил за LPTHW ex51 от Zed shaw http://learnpythonthehardway.org/book/ex51.html и делал его упражнения для обучения на web.py, я начинал начинать web.py и успешно загружал изображение в форме веб-страницы, а затем сохранял его в локальной папке. Проблема заключается в том, что каждое изображение, которое я храню, заменяет предыдущее. Также я не могу понять, как загрузить несколько изображений на сервер и сохранить их все.Как сделать загрузку нескольких файлов на веб-странице и сохранить на диске в web.py?

Вот мой класс Загрузить в app.py:

class Upload(object): 
    def GET(self): 
     web.header("Content-Type","text/html; charset=utf-8") 
     return render.upload() 

    def POST(self): 
     x= web.input(myfile={}) 
     filedir= "C:/Users/tejas/Documents/filesave" 
     if 'myfile' in x: 
      fout = open(filedir + '/' + 'myfile.jpg', 'wb') # creates the file where the uploaded file should be stored 
      fout.write(x.myfile.file.read()) # writes the uploaded file to the newly created file. 
      fout.close() # closes the file, upload complete 
      return "Success! Your image has been saved in the given folder." 
      raise web.seeother('/upload') 

и моя загрузка form- upload.html:

<html> 
    <head><title> 

    <div id="header" <h1 style="color:blue;">Upload image file</h1><div/> 

    </title></head> 

    <body background-color=light-blue,font-family=verdana,font-size=100%;> 
     <form method="POST" enctype="multipart/form-data" action=""> 
     <input type="file" name="myfile"/> 

    <br/> <br/><br/> 
     <input type="submit"/> 
     </form> 
     </body> 
     </html> 

Я попытался найти много для подобных вопросов, но все в PHP, и поэтому я пытаюсь что-то подобное с кодом, но я не мог заставить его работать. Любые предложения по улучшению кода?

ответ

0

причины ваш код заменяющая ранее на это, потому что ваш жестко прописывать путь, чтобы сохранить изображение

fout = open(filedir + '/' + 'myfile.jpg', 'wb') 

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

fout = open(filedir + '/' + x.myfile.filename, 'wb'); 

согласно питону при открытии для записи файлов с тем же именем будет удален убедитесь, что каждый новый файл вы загружаете имеете другое имя фр om предыдущая загруженная

+0

Спасибо. Ваше предложение решило это. –

+0

Спасибо большое, чтобы помочь – sachgits