测试图像链接

时间:2015-11-19 13:35:59

标签: html

我正在寻找一种方法,使用用户的id作为文件名将标签链接到个人资料图片。但是,图像的扩展名取决于用户上传时的文件扩展名。

我的问题是:如何进行测试以查看给定的图像文件名是否存在,并循环浏览图像的各种文件扩展名。

例如: 让我们说,图像命名为:1.jpg,但另一个命名为2.png。 我想在html中实现以下内容:

<img src = "' + userId + '.jpg">  

这适用于第一个用户,但不适用于第二个用户。我将如何测试src的各种图像文件扩展名?

由于

2 个答案:

答案 0 :(得分:1)

“文件扩展名”(事实上,关于“文件”名称的任何内容)都是毫无意义的。 尤其是,涉及到HTTP请求。此URL可以轻松生成图像文件:

http://www.example.com/foo.txt

了解HTTP中没有“文件”这样的东西。有请求和响应,每个请求和响应都包含标题和内容。 “文件”只是带有content-disposition标头的响应。 “图像”是对其他标题的响应,指定它包含图像数据。

如果你不知道图片的网址,那么它可以是任何

  

图像的扩展名取决于用户上传时的文件扩展名

在这种情况下,您应该在数据库中存储该信息。无论记录如何,用户配置文件的信息都将包含用户配置文件图像的URL。使用该数据构建img元素。

存储数据或强制执行约定。如果你不这样做,那么你根本就没有这些数据。

答案 1 :(得分:0)

假设您正在使用PHP & MySql商店上传的图片

user_data/user_id/image.png

您可以使用php mkdir()函数创建具有用户ID

的目录

例如

mkdir("user_data/".$user_id,0777);

所以你的上传脚本就是这样的

<?php
$fileName = $_FILES['uploadedFile']['name'];
if(!file_exists("user_data/".$user_id."/")){
   mkdir("user_data/".$user_id,0777);
}
move_uploaded_file($_FILES['uploadedFile']['tmp_name'],user_data/".$user_id."/");
$conn = mysqli_connect($host,$user,$pass,$db_name);//Database connection
$sql = "INSERT INTO uploads(user_id,fileName) VALUES('$user_id','$_FILES['uploadedFile']['name']'";
$query = mysqli_query($conn,$sql) or die("Unable to update to database");

?>

检索结果的脚本

<?php
$conn = mysqli_connect($host,$user,$pass,$db_name);//Database connection
    $sql = "SELECT * FROM uploads";
    $query = mysqli_query($conn,$sql);
    $data= mysqli_fetch_array($query);
?>
<img src"user_data/<?php echo "/".$user_id."/". $data['fileName']; ?>

上面有一些变体,例如$user_id,你设置&amp;从会话变量中获取