将缩略图图像写入以下目录时出现以下错误
Warning: imagejpeg() [function.imagejpeg]: Unable to open 'D:\imagesdb\images\62t\' for writing: No such file or directory
如果我手动创建一个目录,然后将其添加到imagejpeg()例如:C:\ images我得到相同的错误,这也适用于我使用fopen
Warning: fopen(C:\images\) [function.fopen]: failed to open stream: No such file or directory
所有路径都存在!我还检查了varibles以查看路径是否正确并且我没有丢失数据,(var_dump!)
我也试过chmod,但是我使用的是Windows,这应该不适用?
我正在使用
Windows XP Home Edition SP3 running localhost, XAMMP, apache, php
我担心如果它是我正在使用的操作系统版本,我尝试过提供apache服务 “服务”中的本地系统帐户访问,尝试共享该文件夹!
我可以在上传到同一目录中的另一个文件夹'images \ 62'时写一个正常的图像,但是'images \ 62t'要么被拒绝,要么在我尝试写拇指时不存在?
我已经检查了php.ini,gd已启用,我尝试取消评论: extension = php_gd2.dll,安全模式也关闭。
我担心如果它是我的操作系统版本,那么文件权限涉及的范围非常有限? 或者只是我的代码?
if($this->changed){
//$tp = fopen("C:\images\\",'w+');
chmod($this->thumb_path, 0777);
$originalImage = imagecreatefromjpeg($this->image_path);
$width = imagesx($originalImage);
$height = imagesy($originalImage);
$thumb_width = $this->thumbWidth;
$thumb_height = floor($height * ($this->thumbWidth / $width));
$newImage = imagecreatetruecolor($thumb_width,$thumb_height);
imagecopyresized($newImage,$originalImage, 0, 0, 0, 0, $thumb_width, $thumb_height, $width, $height );
imagejpeg($newImage,$this->thumb_path);
} else {
$this->_messages[] = $field['name' ] . 'did not upload please check and try again' ;
}
答案 0 :(得分:5)
$this->thumb_path
可能只包含没有文件名的路径。没有文件名:PHP应该如何知道如何命名文件?
答案 1 :(得分:3)
尝试放置相对路径,而不是将绝对路径放在imagejpeg中,至少我是如何解决这个问题的。
答案 2 :(得分:1)
$image_path=getcwd()."/your_images_directory/yourfile.jpg";
将你的目录chmod到775或任何你的要求。