9

我正在以编程方式上传图像文件并想设置文件名。当我通过 POST 上传文件时,文件名属性会自动设置。但是,当使用下面的方法时,文件名没有被设置。

        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) 
4

2 回答 2

8

从 url 解析文件名(请参阅此处的相关问题)。然后,您可以通过在 files.blobstore.create 调用中添加一个附加参数来设置它:

file_name = files.blobstore.create(mime_type='image/png',_blobinfo_uploaded_filename=file_name_from_url)
于 2011-04-18T02:30:12.190 回答
4

我知道这是一个老问题,但......

self.send_blob(blob_info,save_as=True) 允许您代替 True 来指定字符串。这意味着该文件将使用提供的字符串作为文件名来提供。因此,一种解决方案是让您将文件名与 blobkey 一起保留,然后当您使用 send_blob 提供这些文件时,您将文件名作为参数提供。您不关心文件将如何存储,您只关心文件将如何提供。

于 2011-08-30T21:07:28.337 回答