社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  问与答

求问一个关于上传文件的问题

huangturen2007 • 10 年前 • 4653 次点击  

我现在把文件通过FileField上传至服务器的一个文件夹,现在如何获取这个文件名称呢?

我要做的是先有一个项目,这个项目下面有若干个文件,最后要显示给用户的是文件名,并超链接文件名,但是这个文件名如何获得,最不能再去设置一项name吧,能不能直接从文件中读取呢?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/739
 
4653 次点击  
文章 [ 4 ]  |  最新文章 10 年前
huangturen2007
Reply   •   1 楼
huangturen2007    10 年前

哦,忘了,self.file.url外面要加str()

huangturen2007
Reply   •   2 楼
huangturen2007    10 年前

@huangturen2007 今天解决了,在models 下定义了一个方法: def getfilename(self): return os.path.basename(self.file.url)

然后在html中循环时对象调用这个方法即可!

huangturen2007
Reply   •   3 楼
huangturen2007    10 年前

这个我昨天做到了,但是它带着文件的相对路径,即如果是abc.xls存放在File文件夹下,结果是File/abc.xls,我想把前面的File/去掉,尝试利用Python的截取,即path[5:],但是html文件中这种方式无法解析。有办法吗?

Py站长
Reply   •   4 楼
Py站长    10 年前

使用 file.name

class PDFUpload(models.Model):
    user = models.ForeignKey(User, editable=False)
    desc = models.CharField(max_length=255)
    file = models.FileField(upload_to=upload_pdf)

{% for download in downloads %}
    <div class="download">
        <div class="title">{{download.file.name}}</div>
        <div class="size">{{download.file.size}} bytes</div>
        <div class="desc">{{download.desc}}</div>
    </div>
{% endfor %}

http://stackoverflow.com/questions/2082652/filefield-size-and-name-in-template