PHP文件无法上传到localhost

时间:2015-01-03 05:31:01

标签: php

我已经设置了XAMPP服务器并尝试使用自定义管理页面上传图像文件。当我在运行ubuntu的在线服务器上进行设置时,页面工作正常。

但是当在localhost中尝试相同的脚本时,会出现以下错误。

警告: move_upload_file(../ img / products / fw000001.jpg):无法打开流。 C:\ xampp \ htdocs \ OBS \ store \ kish \ bin \ functions.php 中没有此类文件或目录 64

这是functions.php

的文件上传部分
function upload_image($image,$code)
{
  define("UPLOAD_DIR", "../img/products/");

  if (!empty($image)) {
    $myFile = $image;

    if ($myFile["error"] !== UPLOAD_ERR_OK) {
      return null;
    }

    //check if the file is an image
    $fileType = exif_imagetype($_FILES["image"]["tmp_name"]);
    $allowed = array(IMAGETYPE_GIF, IMAGETYPE_JPEG, IMAGETYPE_PNG);
    if (!in_array($fileType, $allowed)) {
      exit();
    }

    // ensure a safe filename
    $name = $myFile["name"];
    $parts = pathinfo($name);
    $extension = $parts["extension"];
    $savename = $code . "." . $extension;

    // don't overwrite an existing file
    $i = 0;

    if(file_exists(UPLOAD_DIR . $savename)) {
      unlink(UPLOAD_DIR . $savename);
    }

    // preserve file from temporary directory
    $success = move_uploaded_file($myFile["tmp_name"],
    UPLOAD_DIR . $savename);
    if (!$success) {
      exit();
    }
    else
    {
      return $savename;
    }
    // set proper permissions on the new file
    chmod(UPLOAD_DIR . $name, 0644);


  }
}

2 个答案:

答案 0 :(得分:0)

我不太确定目录分隔符。目录分隔符在基于Linux的OS上表示(/)。 Widows使用(\)作为目录分隔符。所以,请更改此行并进行测试。

 define("UPLOAD_DIR", "../img/products/"); 

 define("UPLOAD_DIR", "..".DIRECTORY_SEPARATOR."img".DIRECTORY_SEPARATOR."products".DIRECTORY_SEPARATOR."); 

答案 1 :(得分:0)

更改此行

//保存临时目录中的文件

$success = move_uploaded_file($_FILES["image"]["tmp_name"],UPLOAD_DIR . $savename);