【问题标题】:echo file_get_contents($_FILES["image"]["tmp_name"] doesn't do anythingecho file_get_contents($_FILES["image"]["tmp_name"] 没有做任何事情
【发布时间】:2013-09-07 16:19:13
【问题描述】:

我已经编写了以下代码。 Web 浏览器中没有写入任何内容,也不会引发任何错误。谁能帮我找出问题所在?

try {
   echo file_get_contents($_FILES["image"]["tmp_name"]);
} catch (Exception $e) {
    echo 'Caught exception: ',  $e->getMessage(), "\n";
}

这是表格:

echo "<form action='upload.php' method='post' enctype='multipart/form-data'> 
        <p><input type='file' name='myfile'/></p>
        <p><input type='submit' value='Upload'/></p>
        </form>";

问题是我正在遵循我应该设置的教程:$image=file_get_contents($_FILES["image"]["tmp_name"]);当教程中的人试图回应它时,文件内容被写入浏览器。对我来说什么也没发生。我认为它不起作用。

【问题讨论】:

  • 如果你把var_dump($_FILES);放在try {块之后会返回什么?
  • 显示您的 html。您是否在表单中添加了enctype
  • 如果我是 var_dump($_FILES);我得到以下信息: array(1) { ["myfile"]=> array(5) { ["name"]=> string(23) "2013-07-25 07.06.59.jpg" ["type"] => string(10) "image/jpeg" ["tmp_name"]=> string(14) "/tmp/phpHIh8Nm" ["error"]=> int(0) ["size"]=> int(499775) } } Din fil har nu laddats upp

标签: php


【解决方案1】:

使用

  file_get_contents($_FILES["myfile"]["tmp_name"]); 

而不是

  file_get_contents($_FILES["image"]["tmp_name"]);

since &lt;input type='file' name='myfile'/&gt;

来自Changing the file name of a tmp file uploaded through a form的更好参考

if($_SERVER['REQUEST_METHOD']=='POST' && isset($username) && is_numeric($id)
&& isset($_FILES['myfile']['error']) && $_FILES['myfile']['error']=='UPLOAD_ERR_OK')
{
    $name    = basename($_FILES['myfile']['name']);
    $ext     = end(explode('.', $name));
    $info    = getimagesize($_FILES['myfile']['tmp_name']);

}

【讨论】:

  • 问题是我正在按照我应该设置的教程进行操作:$image=file_get_contents($_FILES["image"]["tmp_name"]);当教程中的人试图回应它时,文件内容被写入浏览器。对我来说什么也没发生。我认为它不起作用。
猜你喜欢
  • 2012-09-07
  • 2016-10-02
  • 2013-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多