php文件上传支持哪些文件类型?
Choose a file to upload: <input name="uploadedfile" type="file" />
<br />
Username:<input type="text" name="username">
<br />
Password:<input type="text" name="password">
<br />
FaxNumber:<input type="text" name="faxnumber">
<input type="submit" value="Upload File" />
答案 0 :(得分:3)
PHP并不限制此类内容。文件始终只是数据。当PHP“发布”(或上传)到您的服务器时,PHP会为您提供这些数据。它没有看它确定它是什么种数据,它只是说“这个数据被上传,这里是临时文件的路径。”只要您的服务器可以处理接收整个文件,PHP就可以接受任何内容。是否要限制可以上传的类型完全取决于您。
答案 1 :(得分:1)
客户端没有限制,支持所有文件/类型。 PHP也没有内置限制并支持所有文件。如果你想限制可以在php中上传的内容,它看起来像下面的片段,它将文件限制为gif图像:
if ($_FILES["file"]["type"] == "image/gif"){
//do stuff here
}
else{
//the file was wrong type handle error here
}
您可以在上面的代码中找到MIME类型列表“image / gif”: http://en.wikipedia.org/wiki/Internet_media_type#List_of_common_media_types
答案 2 :(得分:1)
也许你需要这个: http://en.wikipedia.org/wiki/Internet_media_type
默认情况下,文件类型没有限制,直到您指定限制为止。
上传文件的文件类型可通过以下方式获取:
$_FILES['yourFileName']['type']
答案 3 :(得分:0)
by default: nearly anything you want (pdf,txt,exe,jpg) etc.
您的工作是过滤掉您希望使用的任何内容。 你可以过滤$ _FILES数组(类型,大小)等中的任何内容
答案 4 :(得分:0)
PHP将支持文件上传的所有文件类型,但您必须验证可能破坏您网站的某些文件扩展名,并且您还必须考虑文件大小以避免长时间运行脚本。
答案 5 :(得分:0)
PHP无法处理上传。 http规范支持上传,应由您的Web服务(Apache,IIS等)处理。
无论如何,如果您只想保存上传的文件,那么所有文件类型都可以正常工作。如果你想把上传的文件作为输入进行处理,事情会变得更加毛茸茸。
答案 6 :(得分:0)
您可以上传任何文件,php对此没有限制。您需要自己做限制。
有关客户端文件格式限制,请参阅此Limit file format when using ?
<input type="file" accept="image/*" /> <!-- all image types -->
<input type="file" accept="audio/*" /> <!-- all audio types -->
对于服务器,您可以按此过滤上传的文件
if(in_array(mime_type($file_path),$allowed_mime_types)){
// save the file
}
$allowed_mime_types = array(
'image/jpeg',
'image/jpg',
'image/png',
'image/gif',
'video/mp4'
);
/*
For PHP>=5.3.0, you can use php's `finfo_file`([finfo_file](https://www.php.net/manual/en/function.finfo-file.php)) function to get the file infomation about the file.
For PHP<5.3.0, you can use your's system's `file` command to get the file information.
*/
function mime_type($file_path)
{
if (function_exists('finfo_open')) {
$finfo = new finfo(FILEINFO_MIME_TYPE, null);
$mime_type = $finfo->file($file_path);
}
if (!$mime_type && function_exists('passthru') && function_exists('escapeshellarg')) {
ob_start();
passthru(sprintf('file -b --mime %s 2>/dev/null', escapeshellarg($file_path)), $return);
if ($return > 0) {
ob_end_clean();
$mime_type = null;
}
$type = trim(ob_get_clean());
if (!preg_match('#^([a-z0-9\-]+/[a-z0-9\-\.]+)#i', $type, $match)) {
$mime_type = null;
}
$mime_type = $match[1];
}
return $mime_type;
}