Home  >  Q&A  >  body text

python - django 文件上传与转发

有这样一个需求,需要以http方式上传一张图片,先上传到一个中间服务器,然后再将这张图片上传到另一个服务器(目标服务器)上。中间可以根据实际需要存储图片。使用django框架和python 怎么实现?
我的目前的方式是这样的(部分代码):

    def upload_img():
        register_openers()
        validate_data = self.generate_validate_data()
        file_data = request.FILES.get('img')
        post_data = {'img': file_data, 'dir': 'product'}
        post_data.update(validate_data)
        datagen, headers = multipart_encode(post_data)
        new_request = urllib2.Request(self.img_upload_url, datagen, headers)
        response = urllib2.urlopen(new_request)

对于图片数据部分,使用以下方式也不能上传成功:

    file_data = request.FIELS.get('img').read()  

另外,如果是另一种情况,需要将网络上的一张图片,而不是本地上传的图片传到目标服务器上,又该如何实现?
我使用urllib2.urlopen请求网络文件,获取数据后再上传也不能成功。

但如果对于一个已存在与中间服务器上的图片,使用下列方式可以上传成功

    file_data = open('file_path', 'rb')

望有经验的大牛指点指点

ringa_leeringa_lee2761 days ago573

reply all(0)I'll reply

No reply
  • Cancelreply