Albanx的PHP和JQuery上传器 – 空白页

我正在尝试实现这个PHP和JQuery上传器: http : //code.google.com/p/ax-jquery-multiuploader/

我没有更改任何内容,并使用“表单集成和文件重命名”示例,因为我需要在表单中发送图库名称来设置文件夹路径。 上传工作正常,但一旦完成,我就会得到一个空白页面。 我真的不明白为什么……

最奇怪的是:每当我尝试修改随包给出的upload.php文件来获取消息时,上传似乎不再起作用(进度条停止在大约25%,没有更多的事情发生,我留在同一页面),但文件已上传。

我想获得一个包含上传图像列表的页面,用标题完成它们,然后在数据库中插入数据(图像路径,名称和标题)。

有谁知道它发生了什么?

谢谢,

阿史那

编辑:一些帮助…… PHPinfo和PHP页面。 我试图包括header.php和body.php,因为我必须为我的所有页面做,但正如我解释的那样,它会导致最奇怪的事情。

服务器PHPinfo: http ://awichser.dyndns.org/phpinfo.php

add_gallery.php

   As-Wichser.com - Website Management                     CKEDITOR.replace( 'editor1' );   var galleryfolder='wild/'; $('#demo1').ajaxupload({ url:'upload.php', remotePath: '../files/'+galleryfolder, editFilename:true, form:'#THEFORM' });    

upload.php的

 <?php /** * PHP Real Ajax Uploader * Copyright @Alban Xhaferllari * albanx@gmail.com * www.albanx.com */ error_reporting(E_ALL ^ E_NOTICE);//remove notice for json invalidation $uploadPath = $_REQUEST['ax-file-path']; $fileName = $_REQUEST['ax-file-name']; $currByte = $_REQUEST['ax-start-byte']; $maxFileSize= $_REQUEST['ax-maxFileSize']; $html5fsize = $_REQUEST['ax-fileSize']; $isLast = $_REQUEST['isLast']; //if set generates thumbs only on images type files $thumbHeight = $_REQUEST['ax-thumbHeight']; $thumbWidth = $_REQUEST['ax-thumbWidth']; $thumbPostfix = $_REQUEST['ax-thumbPostfix']; $thumbPath = $_REQUEST['ax-thumbPath']; $thumbFormat = $_REQUEST['ax-thumbFormat']; $allowExt = (empty($_REQUEST['ax-allow-ext']))?array():explode('|', $_REQUEST['ax-allow-ext']); $uploadPath .= (!in_array(substr($uploadPath, -1), array('\\','/') ) )?DIRECTORY_SEPARATOR:'';//normalize path if(!file_exists($uploadPath) && !empty($uploadPath)) { mkdir($uploadPath, 0777, true); } if(!file_exists($thumbPath) && !empty($thumbPath)) { mkdir($thumbPath, 0777, true); } //with gd library function createThumbGD($filepath, $thumbPath, $postfix, $maxwidth, $maxheight, $format='jpg', $quality=75) { if($maxwidth<=0 && $maxheight0 && $height_orig>0) { $ratioX = $maxwidth/$width_orig; $ratioY = $maxheight/$height_orig; $ratio = min($ratioX, $ratioY); $ratio = ($ratio==0)?max($ratioX, $ratioY):$ratio; $newW = $width_orig*$ratio; $newH = $height_orig*$ratio; // Resample $thumb = imagecreatetruecolor($newW, $newH); $image = imagecreatefromstring(file_get_contents($filepath)); imagecopyresampled($thumb, $image, 0, 0, 0, 0, $newW, $newH, $width_orig, $height_orig); // Output switch (strtolower($format)) { case 'png': imagepng($thumb, $thumbPath.$thumb_name, 9); break; case 'gif': imagegif($thumb, $thumbPath.$thumb_name); break; default: imagejpeg($thumb, $thumbPath.$thumb_name, $quality);; break; } imagedestroy($image); imagedestroy($thumb); } else { return false; } } //for image magick function createThumbIM($filepath, $thumbPath, $postfix, $maxwidth, $maxheight, $format) { $file_name = pathinfo($filepath); $thumb_name = $file_name['filename'].$postfix.'.'.$format; if(empty($thumbPath)) { $thumbPath=$file_name['dirname']; } $thumbPath.= (!in_array(substr($thumbPath, -1), array('\\','/') ) )?DIRECTORY_SEPARATOR:'';//normalize path $image = new Imagick($filepath); $image->thumbnailImage($maxwidth, $maxheight); $images->writeImages($thumbPath.$thumb_name); } function checkFilename($fileName, $size) { global $allowExt, $uploadPath, $maxFileSize; //------------------max file size check from js $maxsize_regex = preg_match("/^(?'size'[\\d]+)(?'rang'[az]{0,1})$/i", $maxFileSize, $match); $maxSize=4*1024*1024;//default 4 M if($maxsize_regex && is_numeric($match['size'])) { switch (strtoupper($match['rang']))//1024 or 1000?? { case 'K': $maxSize = $match[1]*1024; break; case 'M': $maxSize = $match[1]*1024*1024; break; case 'G': $maxSize = $match[1]*1024*1024*1024; break; case 'T': $maxSize = $match[1]*1024*1024*1024*1024; break; default: $maxSize = $match[1];//default 4 M } } if(!empty($maxFileSize) && $size>$maxSize) { echo json_encode(array('name'=>$fileName, 'size'=>$size, 'status'=>'error', 'info'=>'File size not allowed.')); return false; } //-----------------End max file size check //comment if not using windows web server $windowsReserved = array('CON', 'PRN', 'AUX', 'NUL','COM1', 'COM2', 'COM3', 'COM4', 'COM5', 'COM6', 'COM7', 'COM8', 'COM9', 'LPT1', 'LPT2', 'LPT3', 'LPT4', 'LPT5', 'LPT6', 'LPT7', 'LPT8', 'LPT9'); $badWinChars = array_merge(array_map('chr', range(0,31)), array("", ":", '"', "/", "\\", "|", "?", "*")); $fileName = str_replace($badWinChars, '', $fileName); $fileInfo = pathinfo($fileName); $fileExt = $fileInfo['extension']; $fileBase = $fileInfo['filename']; //check if legal windows file name if(in_array($fileName, $windowsReserved)) { echo json_encode(array('name'=>$fileName, 'size'=>0, 'status'=>'error', 'info'=>'File name not allowed. Windows reserverd.')); return false; } //check if is allowed extension if(!in_array($fileExt, $allowExt) && count($allowExt)) { echo json_encode(array('name'=>$fileName, 'size'=>0, 'status'=>'error', 'info'=>"Extension [$fileExt] not allowed.")); return false; } $fullPath = $uploadPath.$fileName; $c=0; while(file_exists($fullPath)) { $c++; $fileName = $fileBase."($c).".$fileExt; $fullPath = $uploadPath.$fileName; } return $fullPath; } if(isset($_FILES['ax-files'])) { //for each theorically runs only 1 time, since i upload i file per time foreach ($_FILES['ax-files']['error'] as $key => $error) { if ($error == UPLOAD_ERR_OK) { $newName = !empty($fileName)? $fileName:$_FILES['ax-files']['name'][$key]; $fullPath = checkFilename($newName, $_FILES['ax-files']['size'][$key]); if($fullPath) { move_uploaded_file($_FILES['ax-files']['tmp_name'][$key], $fullPath); if(!empty($thumbWidth) || !empty($thumbHeight)) createThumbGD($fullPath, $thumbPath, $thumbPostfix, $thumbWidth, $thumbHeight, $thumbFormat); echo json_encode(array('name'=>basename($fullPath), 'size'=>filesize($fullPath), 'status'=>'uploaded', 'info'=>'File uploaded')); } } else { echo json_encode(array('name'=>basename($_FILES['ax-files']['name'][$key]), 'size'=>$_FILES['ax-files']['size'][$key], 'status'=>'error', 'info'=>$error)); } } } elseif(isset($_REQUEST['ax-file-name'])) { //check only the first peice $fullPath = ($currByte!=0) ? $uploadPath.$fileName:checkFilename($fileName, $html5fsize); if($fullPath) { $flag = ($currByte==0) ? 0:FILE_APPEND; $receivedBytes = file_get_contents('php://input'); //strange bug on very fast connections like localhost, some times cant write on file //TODO future version save parts on different files and then make join of parts while(@file_put_contents($fullPath, $receivedBytes, $flag) === false) { usleep(50); } if($isLast==true) { createThumbGD($fullPath, $thumbPath, $thumbPostfix, $thumbWidth, $thumbHeight, $thumbFormat); } echo json_encode(array('name'=>basename($fullPath), 'size'=>$currByte, 'status'=>'uploaded', 'info'=>'File/chunk uploaded')); } } //var_dump($_POST); ?>