标签: django-uploads

你如何将PIL`Image`转换为Django`File`?

我正在尝试将UploadedFile一个PIL Image对象转换为缩略图,然后将Image我的缩略图函数返回的PIL 对象转换回一个File对象.我怎样才能做到这一点?

python django django-file-upload django-uploads python-imaging-library

50
推荐指数
3
解决办法
2万
查看次数

UnicodeEncodeError:'ascii'编解码器无法编码字符

上传具有非ASCII字符的文件时,我得到UnicodeEncodeError:

Exception Type: UnicodeEncodeError at /admin/studio/newsitem/add/
Exception Value: 'ascii' codec can't encode character u'\xf8' in position 78: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)

查看完整堆栈跟踪.

我用MySQL和nginx以及FastCGI运行Django 1.2.

这是根据Django Trac数据库修复的问题,但我仍然遇到问题.欢迎任何有关如何修复的建议.

编辑:这是我的图像字段:

image = models.ImageField(_('image'), upload_to='uploads/images', max_length=100)
Run Code Online (Sandbox Code Playgroud)

django file-upload nginx django-admin django-uploads

36
推荐指数
5
解决办法
4万
查看次数

django/file上传权限

我写了一个django应用程序,但我对来自Web表单的上传文件的文件权限有一点问题.

基本上我可以上传一个.mp3文件,但它始终保持chmod 600.

容器文件夹具有chmod 775,并且umask设置为022.

我在共享托管服务.

django permissions file-upload django-uploads

32
推荐指数
1
解决办法
1万
查看次数

Django:验证上传文件的文件类型

我有一个应用程序,让人们上传文件,表示为UploadedFiles.但是,我想确保用户只上传xml文件.我知道我可以使用magic,但我不知道在哪里进行此检查 - 我无法将其放在clean函数中,因为在clean运行时文件尚未上传,据我所知.

这是UploadedFile模型:

class UploadedFile(models.Model):
    """This represents a file that has been uploaded to the server."""
    STATE_UPLOADED = 0
    STATE_ANNOTATED = 1
    STATE_PROCESSING = 2
    STATE_PROCESSED = 4
    STATES = (
        (STATE_UPLOADED, "Uploaded"),
        (STATE_ANNOTATED, "Annotated"),
        (STATE_PROCESSING, "Processing"),
        (STATE_PROCESSED, "Processed"),
    )

    status = models.SmallIntegerField(choices=STATES,
        default=0, blank=True, null=True) 
    file = models.FileField(upload_to=settings.XML_ROOT)
    project = models.ForeignKey(Project)

    def __unicode__(self):
        return self.file.name

    def name(self):
        return os.path.basename(self.file.name)

    def save(self, *args, **kwargs):
        if not self.status:
            self.status = …
Run Code Online (Sandbox Code Playgroud)

django django-models django-uploads

31
推荐指数
4
解决办法
2万
查看次数

Django上传文件不在MEDIA_ROOT路径中给我SuspiciousOperation错误

我想将文件上传到仍在我的django项目中的MEDIA_ROOT路径,但是在我的路径中.

当我尝试这样做时,我得到一个SuspiciousOperation错误.

以下是我的设置文件中定义的路径:

MEDIA_ROOT = os.path.join(os.path.dirname( __file__ ), 'static_serve')
UPLOAD_DIR = os.path.join(os.path.dirname( __file__ ), 'uploads')
Run Code Online (Sandbox Code Playgroud)

我这样做是因为我不希望我上传的文件可以通过浏览器访问,我的MEDIA_ROOT路径是.

有没有人知道我如何解决(修复)此错误.

python django django-uploads

13
推荐指数
1
解决办法
6451
查看次数

如何使用post_delete - Django 1.8从文件系统中删除文件

我有一个模型 - 产品,其中包含缩略图.我有另一个模型,其中包含与产品相关的图像 - ProductImage.我希望在删除产品实例时从服务器中删除缩略图和图像,有一段时间这似乎有效,但现在不行了.

相关代码......

Class Product(models.Model):
    title = Charfield
    thumbnail = ImageField(upload_to='thumbnails/', verbose_name='thumbnail', blank=True, )

Class ProductImage(models.Model):
    product = models.ForeignKey(plant, default=None, related_name='images')
    image = models.ImageField(upload_to='images/', verbose_name='image',)
Run Code Online (Sandbox Code Playgroud)

以下删除方法(在产品类中)正在运行,但我更改了我的代码并且它不再有效 - 从我所读到的最佳做法是使用post_delete,而不是覆盖delete()

def delete(self):
    images = ProductImage.objects.filter(product=self)
    if images:
        for image in images:
            image.delete()
    super(Product, self).delete()
Run Code Online (Sandbox Code Playgroud)

如何重写一个能实现我想要的删除方法?我曾尝试使用post_delete但到目前为止我一直没有成功,因为我不确定如何在删除ProductImage实例时应用它...

django django-signals django-uploads

11
推荐指数
2
解决办法
1万
查看次数

处理WSGI脚本时发生异常 - IOError:无法写入数据

我正在尝试在服务器端保存图像.我收到它作为base64字符串,所以我先解码它然后将其保存在数据库中.但是这次失败,所以我检查了服务器错误日志,我发现以下错误.日志

    [Tue May 21 14:26:38 2013] [error] [client 41.236.182.133] mod_wsgi (pid=4952): Exception occurred processing WSGI script '/root/AR_BROWSER/example/wsgi.py'.
[Tue May 21 14:26:38 2013] [error] [client 41.236.182.133] IOError: failed to write data
Run Code Online (Sandbox Code Playgroud)

我检查了wsgi.py

import os
import sys

path = '/root/AR_BROWSER/example'

sys.path.append('/root/AR_BROWSER/example')
sys.path.append('/root/AR_BROWSER')
sys.path.append('/root/AR_BROWSER/example/app')

os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
Run Code Online (Sandbox Code Playgroud)

但我找不到错误.知道这个问题的原因是什么?!负责保存图像的代码

 @csrf_exempt    
    def create_app(request):
        appName = request.POST['name']
        user = request.POST['userID']
        c = request.POST['category']
        i = request.POST['image']
        imgdata = base64.b64decode(i)
        t = datetime.now()
        filename = t.strftime('test.jpg')  
        with open(filename, 'w') as f:
            f.write(imgdata) …
Run Code Online (Sandbox Code Playgroud)

python django mongodb django-uploads

6
推荐指数
1
解决办法
5559
查看次数

django在哪里存储临时上传文件?

我在CentOS上运行了一个Django/uwsgi/nginx堆栈.将大文件上传到django(1GB +)时,我希望它能够创建一个临时文件,/tmp并且随着上传的进行,我应该可以看到它增长.但是,我没有.ls -lah /tmp不显示正在创建或更改大小的任何新文件.我甚至settings.py明确指出FILE_UPLOAD_TEMP_DIR = '/tmp'但仍然没有.

我很感激在追踪临时文件存储位置方面的任何帮助.我需要这个来确定是否有任何大型上传正在进行中.

django django-uploads

5
推荐指数
1
解决办法
6838
查看次数

尝试访问'/ media/uploads /

我在admin/urls上的上传方法有问题:

在我的设置中:

# Absolute filesystem path to the directory that will hold user-uploaded files.
# Example: "/var/www/example.com/media/"
MEDIA_ROOT = os.path.join(PROJECT_PATH, "media")

# URL that handles the media served from MEDIA_ROOT. Make sure to use a
# trailing slash.
# Examples: "http://example.com/media/", "http://media.example.com/"
MEDIA_URL = '/media/'

# Absolute path to the directory static files should be collected to.
# Don't put anything in this directory yourself; store your static files
# in apps' "static/" subdirectories and in STATICFILES_DIRS.
# Example: "/var/www/example.com/static/" …
Run Code Online (Sandbox Code Playgroud)

django django-models django-admin django-uploads django-media

5
推荐指数
1
解决办法
2029
查看次数

通过表单显示ImageField中的图像

前奏:

是显示ImageField的最简单方法.让我们假设我的表单中有10个字段,我不想迭代它们template.html只是为了检查它是否是一个imageField并以不同的方式显示它.我想通过形式或插件之类的东西来处理它这个.所以我想要离开template.html,因为它在下面.

template.html

<table>
    {{ form.as_table }}
</table>
Run Code Online (Sandbox Code Playgroud)

并向models.py添加一个image_tag方法:

class UserProfile(Model):
  photo = ImageField(upload_to=PHOTO_DIRECTORY)
  contacts = TextField(null=True)
  ... others

  def image_tag(self):
    return u'<img src="%s" />' % self.photo.url

  image_tag.short_description = 'Image'
  image_tag.allow_tags = True
Run Code Online (Sandbox Code Playgroud)

forms.py:

class UserProfileForm(forms.ModelForm):

  class Meta:
    model = UserProfile
    fields = ('contacts', 'photo', 'image_tag', ...others)
Run Code Online (Sandbox Code Playgroud)

我得到了一个Unknown field(s) (image_tag) specified for UserProfile公平的错误.

我也尝试将它放入,readonly_fields但它们不会以某种方式显示.我是否必须创建list_view?如果是的话应该在哪里?

我在这里想念什么?为什么该image_tag方法应该是模型的一部分而不是形式?模型描述了数据应该如何在数据库中持久化,而不是如何通过表单呈现给用户.这应该是形式的一部分,不应该吗?如果我错了,请纠正我.我该如何解决这个问题?任何帮助将不胜感激!

django django-models django-forms django-uploads

3
推荐指数
3
解决办法
5709
查看次数