PHP将文件扩展名添加到url
我有一个简单的PHP图像上传程序,代码如下PHP将文件扩展名添加到url,php,Php,我有一个简单的PHP图像上传程序,代码如下 <?php if(isset($_FILES['image'])){ $errors= array(); $file_name = $_FILES['image']['name']; $file_size =$_FILES['image']['size']; $file_tmp =$_FILES['image']['tmp_name']; $file_type=$_FILES['image']['type'
<?php
if(isset($_FILES['image'])){
$errors= array();
$file_name = $_FILES['image']['name'];
$file_size =$_FILES['image']['size'];
$file_tmp =$_FILES['image']['tmp_name'];
$file_type=$_FILES['image']['type'];
$file_ext=strtolower(end(explode('.',$_FILES['image']['name'])));
$expensions= array("jpeg","jpg","png");
if(in_array($file_ext,$expensions)=== false){
$errors[]="extension not allowed, please view all of the allowed extensions before uploading.";
}
if($file_size > 2097152){
$errors[]='File size must be excately 2 MB';
}
$file_name = mt_rand(100000000,999999999);
if(empty($errors)==true){
move_uploaded_file($file_tmp,"images/".$file_name);
echo "<script type=\"text/javascript\">swal({ title: 'Success!', html: 'Your image has been uploaded <a href=\"/images/$file_name\">here</a> ' });</script>";
}else{
print_r($errors);
}
}
?>
因此,每个图像都有自己独特的url,问题是图像末尾没有.jpg、.png/文件扩展名。当我获取图像的链接并在末尾添加一个.jpg时,它会给我一个404错误。(我知道这个文件是jpg)
编辑
只是为了澄清一下,URL将如下所示:www.websitehere/com/images/324686653
但是当我像这样在末尾加上扩展名时
www.websitehere/com/images/324686653.png它将给我一个404感谢Armin帮助我回答这个问题 这就是我所做的,我补充说:
move_uploaded_file($file_tmp,"images/".$file_name.".".$file_ext);
<a href=\"/images/$file_name.$file_ext\">here</a>
然后加上这个,
move_uploaded_file($file_tmp,"images/".$file_name.".".$file_ext);
<a href=\"/images/$file_name.$file_ext\">here</a>
希望这有帮助 您想要什么?在移动文件之前将扩展名附加到
$file\u name
有什么问题?是否尝试将扩展名添加到文件名?比如:移动上传的文件($file\u tmp,“images/”$file\u name.“.”$file\u ext);或者类似的东西…@Armin是的,我试过了,那也会向我扔一个404。如果你的扩展是正确的,我不明白为什么这不起作用。你能用var_dump/echo这个部分$file_tmp,“images/”$file_name.“.”$file_ext吗?你应该找到上传的图片,并检查是否添加了扩展名。。。