7

我知道

$localfile = $_FILES['media']['tmp_name'];

鉴于使用了 POST 方法,将获得图像。我正在尝试读取与我的代码位于同一目录中的图像。我如何读取它并将其分配给上面的变量?

4

2 回答 2

15

您发布的代码不会读取图像数据,而是读取其文件名。如果需要检索同一目录下的图片,可以file_get_contents()使用 检索其内容,可以直接输出到浏览器:

$im = file_get_contents("./image.jpeg");
header("Content-type: image/jpeg");
echo $im;

否则,您可以使用GD 库读取图像数据以进行进一步的图像处理:

$im = imagecreatefromjpeg("./image.jpeg");
if ($im) {
  // do other stuff...
  // Output the result
  header("Content-type: image/jpeg");
  imagejpeg($im);
}

最后,如果您不知道所需图像的文件名(但如果它与您的代码位于同一位置,则应该),您可以使用 aglob()查找所有 jpeg,例如:

$jpegs = glob("./*.jpg");
foreach ($jpegs as $jpg) {
  // print the filename
  echo $jpg;
}
于 2012-04-05T18:52:37.413 回答
1

如果要读取图像然后将其渲染为图像

$image="path-to-your-image"; //this can also be a url
$filename = basename($image);
$file_extension = strtolower(substr(strrchr($filename,"."),1));
switch( $file_extension ) {
    case "gif": $ctype="image/gif"; break;
    case "png": $ctype="image/png"; break;
    case "jpeg":
    case "jpg": $ctype="image/jpeg"; break;
    default:
}

header('Content-type: ' . $ctype);
$image = file_get_contents($image);
echo $image;

如果您的路径是 url,并且它使用 https:// 协议,那么您可能需要将协议更改为 http

工作小提琴

于 2017-02-15T06:15:18.980 回答