我已经设置了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);
}
}
答案 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);