<form enctype="multipart/form-data">
<input type="file" name="mp3" />
<input type="submit" />
</form>
我试过上面的,发现var_dump($_FILES);
总是空的。如何使用PHP上传.mp3文件?
它只适用于上传文本文件或图像。
UPDATE
我加入method="POST"
它works.Why在这里有必要POST
?
<form enctype="multipart/form-data">
<input type="file" name="mp3" />
<input type="submit" />
</form>
我试过上面的,发现var_dump($_FILES);
总是空的。如何使用PHP上传.mp3文件?
它只适用于上传文本文件或图像。
UPDATE
我加入method="POST"
它works.Why在这里有必要POST
?
您是否指定表单方法明确POST并尝试?
为什么有必要? – user198729 2010-02-04 13:19:38
+1我不知道当没有指定GET时,GET就是表单的默认方法。 – 2010-02-04 13:23:50
必要的原因是@Pekka刚才所说的。 :) – 2010-02-04 13:31:08
MP3文件上传应该像任何其他文件上传一样工作,没有文件类型或扩展名的区别。
检查您的文件是否不大于允许的大小。
PHP manual on file uploads: Common pitfalls
更新: @Adhip古普塔解决它。我认为GET似乎是FORM的默认方法,而不是POST。请点击此处:http://www.w3.org/TR/html401/interact/forms.html#h-17.13.1
此属性指定将使用哪种HTTP方法提交表单数据集。可能的(不区分大小写)值是“get”(默认值)和“post”。有关使用信息,请参阅表格提交部分。
+1我敢说,MP3可能会比分发php.ini'upload_max_filesize'和/或'post_max_size' vars更大。 – 2010-02-04 13:12:13
但是mp3完全没有发送,我在萤火虫中进行了验证。 – user198729 2010-02-04 13:15:14
咦?真奇怪。它有多大?您是否尝试过按照Adhip Gupta的建议明确设置POST? – 2010-02-04 13:16:39
首先要检查的是文件的大小以及PHP.ini中最大上传大小的设置。
您的PHP代码没有错。而且PHP和网络服务器都不知道MP3文件和其他类型的内容之间的区别。
您是否检查过与尺寸无关的内容?
你知道浏览器和PHP之间没有其他的东西可以过滤吗?
您是否尝试过使用窃听(例如wireshark)来确认数据正在离开浏览器/进入服务器?
C.
也许你错过了MAX_FILE_SIZE应该包括在内。
<input type="hidden" name="MAX_FILE_SIZE" value="157286400" />
您还应该添加action="some.php"
和method="POST"
到<form>
或使用http://www.uploadify.com/阿贾克斯
为了回答您的更新问题,你无法通过GET移动文件,这样的文件上传要求你指定你使用POST。 MP3文件可能会变得很大,所以请记住看看你的php.ini文件,并且可能调整MAX_POST_SIZE和UPLOAD_MAX_FILESIZE变量,以免意外阻塞较大的文件。 – Shane 2010-02-04 13:33:33
我也了解到GET不能用来移动文件,但是背后的原因是什么? – user198729 2010-02-04 13:38:26
@ user198729 GET通常不安全,因为它通过URL栏(www.domain.com?name=shane&bank_account=123456&mothers_maiden_name=doe)传递数据 - 在GET之前,无法对二进制数据执行任何操作(files = binary )但POST,因为它在幕后工作可以处理二进制数据。我希望这有助于! – Shane 2010-02-04 13:55:08