アップロード作業ができましたが、今はファイルをリストに表示する必要があります(ファイル名、アップロードされた日付/作成されたファイルタイプ、ダウンロードオプション)それを動作させるにはGAE Pythonのファイルのダウンロード/一覧表示
私が探しているのは知っている:filename(画像とチェックボックスを下のhtmlで見ることができます)、コンテンツタイプ、作成日。
HTML:
<form action="/download" method="post">
<table id="downloadFile" width="100%">
<tr>
<td>
<table id="downloadFileDetails">
<tr id="dld">
<td id="dld" width="2%"></td>
<td id="dld" width="80%">File Name</td>
<td id="dld" width="10%">Upload Date</td>
<td id="dld" width="8%">Format</td>
</tr>
<tr>
<td id="dld" style="vertical-align: middle; text-align: center "><input type="checkbox" name="checkFile" > </td>
<td id="dld">test</td>
<td id="dld">test</td>
<td id="dld">test</td>
</tr>
{% for file in file_query %}
<tr>
<td id="dld" style="vertical-align: middle; text-align: center "><input type="checkbox" name="checkFile" > </td>
<td id="dld">{{file.user}}</td>
<td id="dld">{{file.blob_key}}</td>
<td id="dld">{{file.last_touch}}</td>
</tr>
{% endfor %}
</table>
</td>
</tr>
<tr>
<td><input type="submit" value="Download File" name="submit"></td>
</tr>
</table>
</form>
Pythonコード:私は、ログに取得
import os
from google.appengine.api import users
from google.appengine.ext import blobstore
from google.appengine.ext import ndb
from google.appengine.ext.webapp import blobstore_handlers
import webapp2
import jinja2
jinja_env = jinja2.Environment(
loader=jinja2.FileSystemLoader(os.path.dirname(__file__)),
autoescape=True)
#Key to serve as a parent
PARENT_KEY = ndb.Key("Entity", "files_root")
# This datastore model keeps track of which users uploaded which photos.
class UserPhoto(ndb.Model):
user = ndb.StringProperty()
blob_key = ndb.BlobKeyProperty()
filename = ndb.StringProperty()
#last_touch = ndb.DateTimeProperty(auto_now_add = True)
class PhotoUploadFormHandler(webapp2.RequestHandler):
def get(self):
file_query = UserPhoto.query(ancestor = PARENT_KEY)#.order(-UserPhoto.last_touch)
upload_url = blobstore.create_upload_url('/upload')
templateHome = jinja_env.get_template("templates/page.html")
self.response.out.write(templateHome.render({"file_query": file_query}).format(upload_url))
# [START upload_handler]
class PhotoUploadHandler(blobstore_handlers.BlobstoreUploadHandler):
def post(self):
try:
upload = self.get_uploads()[0]
user_photo = UserPhoto(parent = PARENT_KEY,
user=users.get_current_user().user_id(),
blob_key=upload.key(),
filename = upload.filename())
user_photo.put()
self.redirect(self.request.referer)
except:
self.error(500)
# [END upload_handler]
app = webapp2.WSGIApplication([
('/', PhotoUploadFormHandler),
('/upload', PhotoUploadHandler)
#('/view_photo/([^/]+)?', ViewPhotoHandler),
], debug=True)
メッセージ:
INFO 2016-05-14 20:54:05,506 module.py:787] default: "GET/HTTP/1.1" 200 1997
INFO 2016-05-14 20:54:05,525 module.py:787] default: "GET /static/styles.css HTTP/1.1" 304 -
INFO 2016-05-14 20:54:05,546 module.py:787] default: "GET /favicon.ico HTTP/1.1" 200 8348
INFO 2016-05-14 20:54:11,806 module.py:787] default: "POST /upload HTTP/1.1" 500 -
私はアプリを再作成していますが、あなたの提案を実装した後も、blobsoreモジュールの詳細を読むと、ページが実行されない同じ問題が発生します – Martin
@Martinあなたの問題を明確にする必要があります。ページが動かないということは、さまざまなことを意味する可能性があり、私はあなたの元の質問をどのように読んでいないのですページまたはコンソールのいずれかにエラーが表示されていますか? – klenwell
これは、 'INFO 2016-05-14 20:45:14,368 module.py:787]のデフォルトの設定を修正した後のエラーです:" GET/HTTP/1.1 "200 1997 INFO 2016-05-14 20: 45:14,388 module.py:787]デフォルト: "GET /static/styles.css HTTP/1.1" 304 - INFO 2016-05-14 20:45:14,408 module.py:787]デフォルト: "GET/favicon。 "HTTP/1.1 HTTP/1.1"のPOST /アップロードHTTP/1.1 "00 - " – Martin