你的$this->UploadPath在可以函数中echo出来看看,是否有

解决方案 »

  1.   

    $this->userSerial 是在那个地方赋值的?
      

  2.   

    $this->userSerial
    $this->UploadPath如果红字部分输出正确.可能在类调用其它函数的过程中又再重新传给新值或者置空了.请查看代码.
      

  3.   

    $this->userSerial
    $this->UploadPath如果红字部分输出正确.可能在类调用其它函数的过程中又再重新传给新值或者置空了.请查看代码.
      

  4.   


    在sql之前再输出一次 $this->UploadPath 看看
      

  5.   

    class JSMultiUpload {
        var $UploadPath = './uploads';
        var $userSerial;
        function JSMultiUpload($uSerial) {

    $this->userSerial = $uSerial;
    $this->UploadPath = 'userimg/'.$this->userSerial;
    echo '<br>userSerial:'.$this->userSerial;
    echo '<br>UploadPath:'.$this->UploadPath;

        }
        function processUpload($file) {
            if (!is_dir($this->UploadPath))
    mkdir($this->UploadPath, 0755); if (!@move_uploaded_file($file['tmp_name'], $this->UploadPath.'/'.$filename)) {
        echo $this->tr('Failed to move the file.')."<br />\n";
        @unlink($file['tmp_name']);
        return false;
    }

    require_once ('_inc.php');
        $sql = "INSERT INTO " . $gDb['prefix'] . "upload SET userSerial='".$this->userSerial."', imgUrl='".$this->UploadPath."/".$filename."'";
        $db->query($sql);
        echo $this->tr('Okay.')."<br />\n";
        return $filename;
    }
    }
    $JSMultiUpload = new JSMultiUpload($vipId);
    if ($processUploads) {
        foreach ($_FILES as $file) {
            $filename = $JSMultiUpload->processUpload($file);
        }

    我是这样调用的
      

  6.   

    至少目前帖出代码没有发现问题,
    有几点必须确定,你自己调试看看:
    1 文件有没有正确上传.如果没有,则在move_uploaded_file函数前设置断点,查看路径是否构造成功.
    2 如果文件上传成功, 数据库内容有问题.则输出 $sql, 并且query之前设置断点.
      

  7.   

    搞定了,JS问题,第一次打开是正确的,JS定向的时候忘记加$uSerial参数了,
    谢谢大家,马上结账!