我有以下函数从文件名生成mime类型:
function get_mime_type($file) {
if (function_exists('finfo_open')) {
$finfo = finfo_open(FILEINFO_MIME_TYPE);
$mimetype = finfo_file($finfo, $file);
finfo_close($finfo);
}
else {
$mimetype = mime_content_type($file);
}
if (empty($mimetype)) $mimetype = 'application/octet-stream';
return $mimetype;
}
Run Code Online (Sandbox Code Playgroud)
我在我的代码的这一部分调用了这个函数:
$out['uploads'][] = array(
'filename' => $fldrow['field_value'],
'mimetype' => get_mime_type($fldrow['field_value']),
'id' => $fldrow['ID'],
);
Run Code Online (Sandbox Code Playgroud)
$fldrow['field_value'] 包含 'card.pdf'
我期待着 'application/pdf'
我正进入(状态 'application/octet-stream'
我还尝试使用Mode = 1更精细的方法: PHP Mime类型检查替代方法吗?
模式= 1时结果相同,模式= 0时结果为空.
我可能在这里做错了什么?
编辑我的解决方案基于Dymen1的响应,并在查看该方向的其他帖子后如下:
function get_mime_type($filename) {
$idx = explode( '.', $filename );
$count_explode = count($idx);
$idx = strtolower($idx[$count_explode-1]);
$mimet = array(
'txt' …Run Code Online (Sandbox Code Playgroud) 我只是想知道为什么现在认为mime_content_type()被弃用了.
这种用于确定mime类型的方法比替换Fileinfo功能容易得多.
最终目标:单击第1页上的链接,最后下载文件并刷新页面1.使用PHP提供不在公共HTML中的下载.
做法:
第1页. 链接传输到第2页,获取我正在使用的文件的get变量引用.
第2页. 使用在刷新页面1之前需要更新的信息更新相关的SQL数据库.设置"firstpass"会话变量.从get变量设置会话变量"getvariablereference".重定向到第1页.
第1页. 如果首先传递会话变量集.设置第二次传递会话变量.取消设置第一个传递变量.刷新页面.在重新加载时,页面将使用更新的SQL数据库信息进行重建(在第2页上更改).
刷新页面1. 如果第二次传递会话变量设置.运行下载服务标头序列.
这是第1页.我没有显示第1页中具有初始链接的部分.既然没关系.
// REFERSH IF FIRSTPASS IS LIVE
if ($_SESSION["PASS1"] == "YES"){
$_SESSION["PASS1"] = "no";
$_SESSION["PASS2"] = "YES";
echo "<script>document.location.reload();</script>";
}
if ($_SESSION["PASS2"] == "YES"){
// Grab reference data from session:
$id = $_SESSION['passreference'];
// Serve the file download
//First find the file location
$query = "SELECT * from rightplace
WHERE id = '$id'";
$result = mysql_query($query);
$row = mysql_fetch_array($result);
$filename = $row['file'];
$uploader = $row['uploader'];
// Setting up download variables …Run Code Online (Sandbox Code Playgroud) 我有一个代码部分,检查是否:
($_FILES["fileToUpload"]["type"] == "image/gif" || $_FILES["fileToUpload"]["type"] == "image/jpeg" || $_FILES["fileToUpload"]["type"] == "image/png")
有什么可以替代'image/gif'它来过滤pdf和mp3?
一些奇怪的情况,当我尝试一个简单的PHP代码来检查文件类型,它无法通过.以下代码中的任何错误?提前致谢.
if(($_FILES["file"]["type"]!="image/jpeg")||
($_FILES["file"]["type"]!="image/gif")||
($_FILES["file"]["type"]!="image/png")){
echo "File must be in format of jpeg,gif or png.";
}
Run Code Online (Sandbox Code Playgroud) php ×5
mime-types ×2
deprecated ×1
download ×1
file-upload ×1
javascript ×1
refresh ×1
session ×1