将网站移动到新服务器后,上传图像不起作用

时间:2013-03-07 23:13:49

标签: php http iis upload permissions

我正在尝试使用下面的脚本上传图片。

我们的旧服务器完全没有问题。一旦我将网站迁移到Windows 2012,iis 8,php 5.2(相同版本),我们就无法实现这一功能。

不幸的是,我们已经花了几个小时试图启用php日志而没有成功。

我怀疑问题在于权限。

问题 要使用下面的脚本,需要哪些权限?我立即为一个可怕的问题道歉,但我对php的了解很少,我需要指导才能开始尝试解决这个问题。

<?php

include '../Check.php';

function cropImage($nw, $nh, $source, $stype, $dest) {

    $size = getimagesize($source);
    $w = $size[0];
    $h = $size[1];

    switch($stype) {
        case 'gif':
        $simg = imagecreatefromgif($source);
        break;
        case 'jpg':
        $simg = imagecreatefromjpeg($source);
        break;
        case 'png':
        $simg = imagecreatefrompng($source);
        break;
    }

    $dimg = imagecreatetruecolor($nw, $nh);

    $wm = $w/$nw;
    $hm = $h/$nh;

    $h_height = $nh/2;
    $w_height = $nw/2;

    if($w> $h) {

        $adjusted_width = $w / $hm;
        $half_width = $adjusted_width / 2;
        $int_width = $half_width - $w_height;

        imagecopyresampled($dimg,$simg,-$int_width,0,0,0,$adjusted_width,$nh,$w,$h);

    } elseif(($w <$h) || ($w == $h)) {

        $adjusted_height = $h / $wm;
        $half_height = $adjusted_height / 2;
        $int_height = $half_height - $h_height;

        imagecopyresampled($dimg,$simg,0,-$int_height,0,0,$nw,$adjusted_height,$w,$h);

    } else {
        imagecopyresampled($dimg,$simg,0,0,0,0,$nw,$nh,$w,$h);
    }

    imagejpeg($dimg,$dest,100);
} 



// JQuery File Upload Plugin v1.4.1 by RonnieSan - (C)2009 Ronnie Garcia
if (!empty($_FILES)) {
//  $filename = $_FILES['Filedata']['tmp_name'];
//  $targetPath = $_SERVER['DOCUMENT_ROOT'] . $_GET['path'] . '/';
//  $filename2 =  str_replace('//','/',$targetPath) . $_FILES['Filedata']['name'];
//  
//  // Uncomment the following line if you want to make the directory if it doesn't exist
//  // mkdir(str_replace('//','/',$targetPath), 0755, true);
//  
//  move_uploaded_file($filename,$filename2);




              $imagename = $_FILES['Filedata']['name'];
              $source = $_FILES['Filedata']['tmp_name'];
              $target = "../Account/uploadimages/".$imagename;
              move_uploaded_file($source, $target);

              $imagepath = $imagename;

              //Save Original

              $save = "../Account/uploadimages/" . $USR_ID . ".jpg" ; //This is the new file you saving
              $file = "../Account/uploadimages/" . $imagepath; //This is the original file

              list($width, $height) = getimagesize($file) ; 

              $modwidth = 500; 
              $modheight = 500; 

              $diff = $width / $modwidth;

              $modheight = $height / $diff; 
              $tn = imagecreatetruecolor($modwidth, $modheight) ; 
              $image = imagecreatefromjpeg($file) ; 
              imagecopyresampled($tn, $image, 0, 0, 0, 0, $modwidth, $modheight, $width, $height) ; 

              imagejpeg($tn, $save, 100) ; 

                //Save Small Version    

              $save = "../Account/profile_small/" . $USR_ID . ".jpg" ; //This is the new file you saving
              $file = "../Account/uploadimages/" . $USR_ID . ".jpg" ; //This is the original file

              list($width, $height) = getimagesize($file) ; 

              $modwidth = 225; 

              $diff = $width / $modwidth;

              $modheight = $height / $diff; 
              $tn = imagecreatetruecolor($modwidth, $modheight) ; 
              $image = imagecreatefromjpeg($file) ; 
              imagecopyresampled($tn, $image, 0, 0, 0, 0, $modwidth, $modheight, $width, $height) ; 

              imagejpeg($tn, $save, 100) ; 



                //Save Square Version   

              $save = "../Account/profile_square/" . $USR_ID . ".jpg"; //This is the new file you saving
              $file = "../Account/uploadimages/" . $USR_ID . ".jpg" ; //This is the original file

                cropImage(60, 60, $file, 'jpg', $save);

            include '../khhCustomConnect.php';
 //Set their USR_HasImage to 1 on their associate profile so that it checks before trying to display profile photo.
            $update_hasimage = mssql_query("UPDATE Associate SET USR_HasImage = '1' WHERE USR_ID = '$USR_ID'") or die ("Error - No option deleted"); 


//Send email to helpdesk
    //Get User that submitted email address for from address
    $emaillookup = mssql_query("Select * FROM Associate Where USR_ID = '$USR_ID'");
    $USR_Email = mssql_result($emaillookup,0,'USR_Email');
    $USR_First = mssql_result($emaillookup,0,'USR_First');
    $USR_Last = mssql_result($emaillookup,0,'USR_Last');


//Start Menu Permission Detail - Change Variable and Title.


// Email will go to their Email. 
$to  = 'helpdesk@khhsl.com'; // note the comma

// subject
$subject = $USR_First . ' ' . $USR_Last . ' - New Picture Uploaded';

// message
$message = '
' . $USR_First . ' ' . $USR_Last . ' has changed their photo on khhConnect. Please upload to AD. Here is link to image: http://xx/xx/Account/profile_small/' . $USR_ID . '.jpg 

<br /><a href="http://xx/xx/Account/profile_small/' . $USR_ID . '.jpg">http://xx/xx/Account/profile_small/' . $USR_ID . '.jpg</a><br><br>


<img src="http://xx/xx/Account/profile_small/' . $USR_ID . '.jpg"><img />


';

// To send HTML mail, the Content-type header must be set
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

// Additional headers
$headers .= 'From: ' . $USR_First . ' ' . $USR_Last . ' <' . $USR_Email . '>' . "\r\n";

// Mail it
mail($to, $subject, $message, $headers) or exit("could not send");



}

echo '1'; // Important so upload will work on OSX
?>

1 个答案:

答案 0 :(得分:1)

您可能想检查是否在temp文件夹中找到了上传的文件,可能想要添加IUSR_MACHINENAME或IUSR_MYMACHINENAME帐户写入权限,并指定在没有上传文件时尝试写入的文件夹。