PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!
I have an upload script that I'm trying to execute and I have noticed that the copy() function does not work. I know that there are some things that don't seem to work correctly on a WINDOWS machine and didn't know if this is one of them. Below is my code and my error below that. What do you think?
//user defined variables
$uploadPath = "/articles/graphics/db/"; //Absolute path to where images are uploaded. No trailing slash
$uploadSizeLim = "no"; //Do you want uploadSizeLitAmt limit, yes or no
$uploadSizeLitAmt = "2500000"; //What do you want uploadSizeLitAmt limited to be if there is one
$uploadNum = 1; //Number of uploads to occur
if ($_REQUEST['submitted']){ // Begin processing portion of script
//all image types to upload
$cert1 = "image/pjpeg"; //Jpeg type 1
$cert2 = "image/jpeg"; //Jpeg type 2
$cert3 = "image/gif"; //Gif type
$cert4 = "image/ief"; //Ief type
$cert5 = "image/png"; //Png type
$cert6 = "image/tiff"; //Tiff type
$cert7 = "image/bmp"; //Bmp Type
$cert8 = "image/vnd.wap.wbmp"; //Wbmp type
$cert9 = "image/x-cmu-raster"; //Ras type
$cert10 = "image/x-x-portable-anymap"; //Pnm type
$cert11 = "image/x-portable-bitmap"; //Pbm type
$cert12 = "image/x-portable-graymap"; //Pgm type
$cert13 = "image/x-portable-pixmap"; //Ppm type
$cert14 = "image/x-rgb"; //Rgb type
$cert15 = "image/x-xbitmap"; //Xbm type
$cert16 = "image/x-xpixmap"; //Xpm type
$cert17 = "image/x-xwindowdump"; //Xwd type
$log = "";
for ($i=0; $i<$uploadNum; $i++) {
//checks if file exists
if ($img_name[$i] == "") {
$log .= "No file selected for upload $i<br>";
}
if ($img_name[$i] != "") {
//checks if file exists
if (file_exists("$uploadPath/$img_name[$i]")) {
$log .= "File $i already existed<br>";
} else {
//checks if files to big
if (($uploadSizeLim == "yes") && ($img_uploadSizeLitAmt[$i] > $uploadSizeLitAmt)) {
$log .= "File $i was too big<br>";
} else {
//Checks if file is an image
if (($img_type[$i] == $cert1) or ($img_type[$i] == $cert2) or ($img_type[$i] == $cert3) or ($img_type[$i] == $cert4) or ($img_type[$i] == $cert5) or ($img_type[$i] == $cert6) or ($img_type[$i] == $cert7) or ($img_type[$i] == $cert8) or ($img_type[$i] == $cert9) or ($img_type[$i] == $cert10) or ($img_type[$i] == $cert11) or ($img_type[$i] == $cert12) or ($img_type[$i] == $cert13) or ($img_type[$i] == $cert14) or ($img_type[$i] == $cert15) or ($img_type[$i] == $cert16) or ($img_type[$i] == $cert17)) {
@copy($img[$i], "$uploadPath/$img_name[$i]") or $log .= "Couldn't copy image 1 to server<br>";
if (file_exists("$uploadPath/$img_name[$i]")) {
$log .= "File $i was uploaded<br>";
}
} else {
$log .= "File $i is not an image<br>";
}
}
}
}
}
If this is in Windows, can you really reference an absolute path starting with '/' - don't you need a drive letter?
I'm not meaning to second guess you, but I find it hard to believe that /articles/graphics/db/_th.jpg is the 100% correct path, when PHP is telling you that path doesn't exist.
Real programmers don't comment their code. If it was hard to write, it should be hard to understand.
Sorry, pickle. You were right. I thought that the way I sourced my path was permitted. I removed the slashes and made it relative. It did indeed upload. Thanks for your help.