我是以编程方式上传图片文件并想设置文件名。当我通过POST上传文件时,会自动设置filename属性。但是,使用下面的方法时,文件名不会被设置。
image = urllib2.urlopen(url)
file_name = files.blobstore.create(mime_type='image/png')
with files.open(file_name, 'a') as f:
f.write(image.read())
files.finalize(file_name)
image_blob_key = files.blobstore.get_blob_key(file_name)
答案 0 :(得分:8)
从网址解析文件名(参见相关问题here)。然后,您可以通过向files.blobstore.create调用添加一个附加参数来设置它:
file_name = files.blobstore.create(mime_type='image/png',_blobinfo_uploaded_filename=file_name_from_url)
答案 1 :(得分:4)
我知道这是一个老问题,但是......
self.send_blob(blob_info,save_as = True)允许您而不是True来指定字符串。这意味着文件将以提供的字符串作为文件名提供。因此,一个解决方案是让您保持文件名和blobkey,然后当您使用send_blob提供这些文件时,您提供文件名作为参数。你不关心如何存储文件,你只关心它将如何被提供。