Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 打开(';文件路径';)。读取()-将内容保存回文件_Python_Django_File - Fatal编程技术网

Python 打开(';文件路径';)。读取()-将内容保存回文件

Python 打开(';文件路径';)。读取()-将内容保存回文件,python,django,file,Python,Django,File,我需要使用urllib2将文件上载到服务器。因为我使用的是OpenOffice python,所以无法使用任何外部库(如请求和其他库),所以我需要一种简单的方法来发布文件数据 所以我来了: post_url = "http://localhost:8000/admin/oo_file_uploader?user_id=%s&file_id=%s" % (user_id, file_id) file_path = doc.Location.replace('file://', '') da

我需要使用urllib2将文件上载到服务器。因为我使用的是OpenOffice python,所以无法使用任何外部库(如
请求
和其他库),所以我需要一种简单的方法来发布文件数据

所以我来了:

post_url = "http://localhost:8000/admin/oo_file_uploader?user_id=%s&file_id=%s" % (user_id, file_id)
file_path = doc.Location.replace('file://', '')
data = urllib.urlencode({"file": open(file_path).read()})
urllib2.urlopen(post_url, data)
它会将某些内容发布到服务器


我想知道是否可以使用python/django将发布的内容保存回文件?

这在@zero323的回答中有所扩展。您需要确保实现某种安全性,以防止未经授权的用户上载随机文件,这就是
@file\u upload\u security
装饰器要处理的

@file_upload_security
def oo_file_uploader(user_id=None, file_id=None):
    if request.method == 'POST':
        # Exception handling skipped if get() fails.
        user = User.objects.get(id=user_id)
        save_to_file = MyFiles.objects.get(id=file_id)

        # You will probably want to ensure 'file' is in post data.
        file_contents = save_to_file.parse_post_to_content(request.POST['file'])

        with open(save_to_file.path_to_file, 'w') as fw:
            fw.write(file_contents)