当前位置: 首页 > 面试题库 >

仅在服务器端接受FileField中的某种文件类型

微生旻
2023-03-14
问题内容

如何限制FileField以优雅的方式仅在服务器端接受某种类型的文件(视频,音频,pdf等)?


问题答案:

一种非常简单的方法是使用自定义验证器。

在你的应用程序中validators.py

def validate_file_extension(value):
    import os
    from django.core.exceptions import ValidationError
    ext = os.path.splitext(value.name)[1]  # [0] returns path+filename
    valid_extensions = ['.pdf', '.doc', '.docx', '.jpg', '.png', '.xlsx', '.xls']
    if not ext.lower() in valid_extensions:
        raise ValidationError('Unsupported file extension.')

然后在你的models.py:

from .validators import validate_file_extension

…并在表单字段中使用验证器:

class Document(models.Model):
    file = models.FileField(upload_to="documents/%Y/%m/%d", validators=[validate_file_extension])


 类似资料:
  • 问题内容: 我正在尝试Go-并希望创建一个可以远程登录,发送命令和接收响应的TCP服务器。 上面的代码片段每次都会关闭连接,将我踢出终端会话。但是我真正想要的是能够保持连接打开以进行更多的I / O操作。如果我只是删除,则服务器似乎挂在某处,因为它不再获得任何响应。 我解决此问题的方法是让我的handleRequest方法无休止地循环,以便它在收到消息之前永远不会退出。这是否合适- 还是有更好的实

  • 我试图构建一个前端和后端分离的系统,并通过基于用户令牌的授权rest调用进行交互。前端和后端应用程序都构建在SpringBoot上。Thymeleaf用作呈现html页面的模板引擎。 当我尝试使用toJson方法时,另一个异常与stackOverflow错误(无限递归)有关 我一直在寻找一个解决方案,以序列化文件从前端服务器到后端服务器相当长的时间。请让我知道这里出了什么问题,或者如果有人有更好的

  • 我的数据库设置为UTF-8(“MySQL Charset:UTF-8 Unicode(utf8)”),但是从服务器检索的XML文件显示“XML version=”1.0“encoding=”ISO-8859-1“”。我只是不能用UTF-8编码它(无论如何UTF-8应该是默认的??),似乎有什么东西覆盖了它,并将其设置为“ISO-8859-1”。 html包括:meta http-equiv=“co

  • 问题内容: 它看起来像一个标准问题,但是我在任何地方都找不到清晰的方向。 我有Java代码试图连接到可能带有自签名(或过期)证书的服务器。该代码报告以下错误: 据我了解,我必须使用keytool并告诉java允许这种连接是可以的。 解决此问题的所有说明均假定我完全精通keytool,例如 生成服务器的私钥并将其导入密钥库 是否有人可以发布详细说明? 我正在运行Unix,所以bash脚本是最好的。

  • 我正在尝试基于非阻塞NIO消息开发自己的通信库。我已经阅读了1000篇关于它的教程和书中的章节,我认为最后我有了一些可以在几乎没有同时连接的情况下工作的东西。但是当我在服务器端有很多连接共存时,我遇到了一些问题。 我有4个私有方法的典型选择器实现:accept、finishConnect、read和write。我的问题在于前两个:接受和完成连接。 当客户端打开一个新的套接字,并且一个可接受的键唤醒

  • 下面是服务器接受多个客户端连接并响应的代码。服务器能够接收客户端的消息,但客户端没有接收服务器消息。我在服务器上使用了多线程概念。我还观察到,除了标有 ####. 的行之外,没有任何工作(即使是println语句)可能是客户端被阻止了...有什么想法吗?服务器代码:公共静态无效main(String artv[])抛出异常{