如何用PHP读取图像?

时间:2012-04-05 18:49:31

标签: php image

我知道

$localfile = $_FILES['media']['tmp_name'];
如果使用了POST方法,

将获得图像。我正在尝试读取与我的代码位于同一目录中的图像。我如何阅读并将其分配给上面的变量?

2 个答案:

答案 0 :(得分:11)

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

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

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

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

最后,如果您不知道您需要的图片的文件名(如果它与您的代码在同一位置,您应该),您可以使用glob()找到所有的jpegs,例如:

$jpegs = glob("./*.jpg");
foreach ($jpegs as $jpg) {
  // print the filename
  echo $jpg;
}

答案 1 :(得分:0)

如果您想要阅读图像然后将其渲染为图像

const trComponent = ({name, onChange}) => {
   return (
        <tr>
          <td>{name}</td>
          <td><input name={ name + "/selectAll" } type="checkbox" onChange={onChange}/></td>
          <td><input name={ name + "/view" } type="checkbox"/></td>
          <td><input name={ name + "/create" } type="checkbox"/></td>
          <td><input name={ name + "/edit" } type="checkbox"/></td>
          <td><input name={ name + "/delete" } type="checkbox"/></td>
        </tr>
   );
}

// if you want to set dynamic state, you can set it in this way
class trComponent extends Component {
    constructor (props) {
        let viewPermission    = props.name + "_view"
       let createPermission  = props.name + "_create"
       let editPermission    = props.name + "_edit"
       let deletePermission  = props.name + "_delete"
        this.state = {
            [viewPermission]: true,
            ....
        }
    }

    render () {
        return (
        <tr>
          <td>{name}</td>
          <td><input name={ this.props.name + "/selectAll" } type="checkbox" onChange={this.props.onChange}/></td>
          <td><input name={ this.props.name + "/view" } type="checkbox"/></td>
          <td><input name={ this.props.name + "/create" } type="checkbox"/></td>
          <td><input name={ this.props.name + "/edit" } type="checkbox"/></td>
          <td><input name={ this.props.name + "/delete" } type="checkbox"/></td>
        </tr>
   );
    }
}

// then use it in this way

<trComponent name='Organization' onChange={this. checkSiblingCheckBoxes}/>

如果您的路径是网址,并且使用的是https://协议,则可能需要将协议更改为http

Working fiddle