django 文件上传与转发

发布于 2022-08-29 18:40:22 字数 982 浏览 24 评论 0

有这样一个需求,需要以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')

望有经验的大牛指点指点

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文