나는 한 번에 (블롭 저장소에 직접) 업로드되는 10 개의 이미지를 허용합니다. image_i는 양식의 text_i와 함께 사용됩니다.사용자가 업로드 할 이미지를 제출하지 않으면 blob은 여전히 blobstore에 저장됩니까?
모든 콘텐츠에 이미지가 필요하지는 않으므로 사용자가 양식을 제출할 때 image_i에 선택한 이미지 파일이없는 경우가 종종 있습니다.
이미지에 blob 만 업로드 될 것으로 예상됩니다 (개발 서버에서 발생하는 현상).
물방울 목록> (응용 프로그램/octet-stream을) 0 바이트, 2012-08- : 나는 라이브 갔을 때
는 그러나, 나는 0 이미지 콘텐츠 길이에 해당하는 BLOB 저장소에 빈 모양의 힙을 보았다 이 콘텐츠 유형 14 17시 11분 54초 AMIfv94Y7ie8cE84WZfEWGZw-NKJPE4iUaYn25zN1J-uftmoCESQoQFBimdiZr19suNBg_kUFW0P2frxIadmpd6LzPuFuA6o9UVq5UEqSvioXaBsDQeMwdJiH5gvh-8TtlZz8Rr1fRHHZd47zsiZpDiF1XsKa6A4aKTDvCnGEdMpW8lV6nlcFfU 물방울이 표시 될 수 없다.
어떻게 방지합니까? 나는 그것이 빈 문자열입니다하지만 애플 리케이션 엔진에 그렇지 않은 개발 서버에 있기 때문에 살아 갔을 때 나는 and not "Content-Length: 0" in str(img_i):
를 추가했다
class AdminHandler(webapp2.RequestHandler):
#displays a form that includes content1, img1, content2, image2..
def get(self):
upload_url = blobstore.create_upload_url(self.uri_for('image-upload-handler'))
template_values = {'page_name': 'admin', 'upload_url': upload_url}
template = jinja_environment.get_template('admin.html')
self.response.out.write(template.render(template_values))
class BlogPost(ndb.Model):
date = ndb.DateProperty(required=True)
title = ndb.StringProperty(required=True)
blob_keys = ndb.BlobKeyProperty(repeated=True)
content = ndb.TextProperty(repeated=True)
content_order = ndb.StringProperty(repeated=True)
@classmethod
def get_blog_posts(cls):
return cls.query().order(-cls.date)
class ImageUploadHandler(blobstore_handlers.BlobstoreUploadHandler):
def post(self):
password = self.request.get('password', None)
if str(password).lower() == 'cyclist':
day = self.request.get('day', None)
month = self.request.get('month', None)
year = self.request.get('year', None)
day, month, year = map(int, (day, month, year))
try:
date = datetime(year, month, day)
#date = datetime.today()
except ValueError:
date = datetime.today()
title = self.request.get('title', None)
blob_keys = [i.key() for i in self.get_uploads()]
#assert(blob_keys)
content = []
content_order = []
for i in range(1, 11):
content_i = self.request.get("content{0}".format(i), None)
if content_i:
content_i = cgi.escape(content_i)
content_i = "<br />".join(content_i.replace("\r\r", "\r").splitlines())
content.append(content_i)
content_order.append("content_next")
img_i = self.request.get("img{0}".format(i), None)
if img_i and not "Content-Length: 0" in str(img_i):
content_order.append("image_next")
#assert(content)
blog_post = BlogPost()
blog_post.title = title
blog_post.blob_keys = blob_keys
blog_post.content = content
blog_post.date = date
blog_post.content_order = content_order
blog_post.put()
ok = True
success = "success"
else:
ok = False
success = "wrong password"
<form action="{{upload_url}}" enctype="multipart/form-data" method="post">
Date day e.g. 31: <input id='day' type="text" name="day" /><br />
Date month e.g. 12: <input id='month' type="text" name="month" /><br />
Date year e.g. 2012: <input id='year' type="text" name="year" /><br />
Title: <input id="title" type="text" name="title" /><br />
Content1: <br />
<textarea id="styled2" name="content1"></textarea>
<br />
Image1:<input type="file" name="img1"/><br />
...<br />
{% for i in range(2, 11) %}
Content{{i}}: <br />
<textarea id="styled" name="content{{i}}"></textarea>
<br />
Image{{i}}:<input type="file" name="img{{i}}"/><br />
...<br />
{% endfor %}
password: <input id="password" type="text" name="password" /><br />
<input type="submit" value="Submit" /><br />
<div id="error-box"></div>
</form>
참고 : 여기 내 코드입니다.
감사합니다 - 나는 그것을 잘못하고 있다고 생각했습니다. :) –