所以标题并不是很清楚我想要做什么,但我不知道如何在一行中定义它。
我有一个网站将被几家公司使用,他们将能够打印/通过电子邮件发送带有自己徽标的报告。为了给他们发电子邮件,我们需要将他们的徽标存储在我们的服务器上。当然,这是上传部分的用武之地,使用PHP很简单。
我正在敲打墙壁的问题是我需要将文件重命名为16个字符的guid,然后将文件名存储在数据库表中。我已经设置了一个php(对于那些不精通PHP的人来说效果非常好)创建了guid,检查服务器以确保不存在具有该名称的文件,然后重命名文件,存储它,并回显文件名。听起来不错吧?错!
对于我的生活,我无法找到提交文件的方法,并能够检索文件名。通过使用form.submit(),回发会中断我的脚本并阻止我检索文件名。我会使用$ .post或& .ajax,但显然文件是他们唯一无法提交的内容,这很方便,因为这就是我想要的。
非常感谢任何建议。谢谢。
答案 0 :(得分:0)
您可以使用ajax提交文件。您可以使用FileReader
API获取文件的二进制数据并发送它。发送二进制数据,回复文件名(或任何你需要的)。
我省略了一个代码示例,因为它有点涉及,我相信你可以找到一个。
这是另一种解决方案:
当您提交表格时,请执行以下操作:
file
元素移动到此表单。您无法复制该值,因为file
输入受到保护。这适用于较旧的浏览器。您将无法提供良好的反馈(如进度指示),因此我建议您将其作为后备实现。
答案 1 :(得分:0)
我最终让我的Javascript确定文件名,将其插入隐藏文本输入,将我的所有信息发送到数据库,包括文件名,然后提交表单。这非常有效。