我正在尝试在不使用表单的情况下将文件上传到我的Google App中的blobstore。但我坚持如何让应用程序读取我的本地文件。我是python和Google Apps的新手,但经过一些剪切和粘贴之后,我最终得到了这个:
import webapp2
import urllib
import os
from google.appengine.api import files
from poster.encode import multipart_encode
class Upload(webapp2.RequestHandler):
def get(self):
# Create the file in blobstore
file_name = files.blobstore.create(mime_type='application/octet-stream')
# Get the local file path from an url param
file_path = self.request.get('file')
# Read the file
file = open(file_path, "rb")
datagen, headers = multipart_encode({"file": file})
data = str().join(datagen) # this is supposedly memory intense and slow
# Open the blobstore file and write to it
with files.open(file_name, 'a') as f:
f.write(data)
# Finalize the file. Do this before attempting to read it.
files.finalize(file_name)
# Get the file's blob key
blob_key = files.blobstore.get_blob_key(file_name)
现在的问题是我真的不知道如何获取本地文件
答案 0 :(得分:2)
您无法从应用程序本身读取本地文件系统,您需要使用http POST将文件发送到应用程序。
您当然可以在另一个应用程序中执行此操作 - 您只需要创建包含文件内容的mime multipart消息并将其发布到您的应用程序,发送应用程序将只需创建您要发布到应用程序的http请求app手动。您应该阅读如何使用c#创建mime mulitpart消息。