我目前正在为Joomla工作!网站。我正在使用Jumi扩展(允许在Joomla!本身内制作和执行自定义脚本)来创建一个简单的文件上传工具。问题是我收到以下错误:
警告:复制(C:/xampp/htdocs/images/1253889508.jpg)[function.copy]:无法打开流: C:\中没有此类文件或目录xampp \ htdocs \ Joomla \ components \ com_jumi \ jumi.php(25):eval()代码在线 61
违规代码如下:
//we will give an unique name, for example the time in unix time format
$image_name=time().'.'.$extension;
//the new name will be containing the full path where will be stored (images folder)
$newname='C:/xampp/htdocs/images/'.$image_name;
//we verify if the image has been uploaded, and print error instead
$copied = copy($_FILES['image']['tmp_name'], $newname);
完整代码可用here。一旦我开始工作,我将修改它以满足我的网站的需求。
我不确定问题是否是Jumi的权限问题,或者是否存在其他问题。我能说的最好的是,无论出于何种原因,都没有创建临时文件。
感谢您提供的任何提示!
答案 0 :(得分:6)
试试这个:
if(move_uploaded_file($_FILES['image']['tmp_name'], $newname)){
// move worked, carry on
}
使用相对路径而不是绝对路径。
答案 1 :(得分:3)
您的C:/ xampp / htdocs / images目录是否确实存在? 如果不是手动创建或使用mkdir()
也尝试使用常量DIRECTORY_SEPARATOR而不是硬编码斜杠
此外,您应该使用move_uploaded_file()而不是copy()函数。
永远不会硬编码绝对路径进入您的脚本!相反,获取根路径并优先将其设置为常量,这主要通过条目文件中的dirname()函数完成,但是joomla allready有一个常量,您可以使用它。
答案 2 :(得分:0)
在$namename
路径而不是反斜杠中转发斜杠?