Py学习  »  问与答

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

huangturen2007 • 10 年前 • 4931 次点击  

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

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

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/739
 
4931 次点击  
文章 [ 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