我试图捕获与表单一起发送的文件,并在对其进行保存之前对其执行一些操作。因此,我需要在temp目录中创建此文件的副本,但是我不知道如何到达它。Shutil的功能无法复制此文件,因为没有路径。那么,是否有其他方法可以执行此操作?
我的代码:
image = form.cleaned_data['image']
temp = os.path.join(settings.PROJECT_PATH, 'tmp')
sourceFile = image.name # without .name here it wasn't working either
import shutil
shutil.copy(sourceFile, temp)
引起:
Exception Type: IOError at /
Exception Value: (2, 'No such file or directory')
和调试:
# (..)\views.py in function
67. sourceFile = image.name
68. import shutil
69. shutil.copy2(sourceFile, temp) ...
# (..)\Python26\lib\shutil.py in copy2
92. """Copy data and all stat info ("cp -p src dst").
93.
94. The destination may be a directory.
95.
96. """
97. if os.path.isdir(dst):
98. dst = os.path.join(dst, os.path.basename(src))
99. copyfile(src, dst) ...
100. copystat(src, dst)
101.
▼ Local vars
Variable Value
dst
u'(..)\\tmp\\myfile.JPG'
src
u'myfile.JPG'
# (..)\Python26\lib\shutil.py in copyfile
45. """Copy data from src to dst"""
46. if _samefile(src, dst):
47. raise Error, "`%s` and `%s` are the same file" % (src, dst)
48.
49. fsrc = None
50. fdst = None
51. try:
52. fsrc = open(src, 'rb') ...
53. fdst = open(dst, 'wb')
54. copyfileobj(fsrc, fdst)
55. finally:
56. if fdst:
57. fdst.close()
58. if fsrc:
▼ Local vars
Variable Value
dst
u'(..)\\tmp\\myfile.JPG'
fdst
None
fsrc
None
src
u'myfile.JPG'
这是类似的问题,可能会有所帮助。
import os
from django.core.files.storage import default_storage
from django.core.files.base import ContentFile
from django.conf import settings
data = request.FILES['image'] # or self.files['image'] in your form
path = default_storage.save('tmp/somename.mp3', ContentFile(data.read()))
tmp_file = os.path.join(settings.MEDIA_ROOT, path)
问题内容: 我正在使用以下内容将检索到的值添加到类中。所有值都将添加到该类的属性中,但是我正在使用compisition(在类中具有class的对象),并且在输出中不显示任何内容。 地址类别如下: 问题答案: 像这样的作品: 将ResultSet行转换为JavaBean。此实现使用反射和BeanInfo类将列名与bean属性名匹配。属性根据以下几个因素与列匹配: 该类具有与列同名的可写属性。名称比
问题内容: 我有几个Javascript原型。最初,实例将仅填写ID,并带有一些其他数据的通用占位符信息。然后,我使用ID和对象类型(使用jQuery的AJAX函数)向服务器发送一条消息,然后服务器返回一个JSON对象,其中包含所有缺少的信息(但没有ID)。返回的对象中的变量与现有对象中的变量名称完全相同。 将其转移到现有的空对象中最简单的方法是什么?我想出了几种选择 将对象设置为等于返回的对象,
我有几个Javascript原型。最初,实例将只填写ID,并为其他数据提供一些通用的位置持有者信息。然后,我将带有ID和对象类型的消息发送给服务器(使用jQuery的AJAX函数),服务器返回一个JSON对象,其中包含所有丢失的信息(但没有ID)。返回对象中的变量与现有对象中的变量具有完全相同的名称。 把它转移到现有空对象中最简单的方法是什么?我想出了几个选择 null
问题内容: 我在这里写了一个快速的jsfiddle,其中我将一个小的JSON对象传递给一个新变量,并修改了原始变量(而不是新变量)中的数据,但是新变量的数据也得到了更新。这必须意味着JSON对象是通过引用传递的,对吗? 这是我的快速代码: 有没有一种方法可以对JSON对象进行深层复制,以便修改原始变量不会修改新变量? 问题答案: 我发现,如果您不使用jQuery而仅对克隆 简单对象 感兴趣(请参见
问题内容: 如何在Java中复制对象? 问题答案: 创建一个副本构造函数: 每个对象还有一个克隆方法,可用于复制对象,但不要使用它。创建类和执行不正确的克隆方法太容易了。
问题内容: 现在并包含相同的日期- 从现在起三年。我想创建两个单独的日期时间,其中一个是从字符串中解析出来的,另一个是添加了三年的时间。目前,我已经将其修改为: 但这似乎是一个可怕的骇客。有没有“正确”的方法来深度复制DateTime对象? 问题答案: 更新: 如果要复制而不是引用现有的DT对象,请使用,而不是。