dachshund Posted August 16, 2009 Share Posted August 16, 2009 i have the following code for uploading an image. but for some reason it always returns as "Error: A problem occurred during file upload!" can anyone spot where i'm going wrong. i'm sure it's very simple and i'm just being blind. <?php include "../template/header.php"; //Сheck that there is a file if((!empty($_FILES["uploaded_file"])) && ($_FILES['uploaded_file']['error'] == 0)) { //Check if the file is JPEG image and it's size is less than 350Kb $filename = basename($_FILES['uploaded_file']['name']); $ext = substr($filename, strrpos($filename, '.') + 1); if (($ext == "jpg") && ($_FILES["uploaded_file"]["type"] == "image/jpeg") && ($_FILES["uploaded_file"]["size"] < 350000)) { // random 4 digit to add to the file name // some people use date and time in stead of random digit $random_digit=rand(0000,9999); //user $userid = $_SESSION['uid']; $query = "SELECT * FROM users WHERE id = '$userid'"; $result = mysql_query($query); $row = mysql_fetch_assoc($result); //combine random digit to the file name to create new file name //use dot (.) to combile these two variables $newfilename=$random_digit.$filename; //Determine the path to which we want to save this file $newname = dirname(__FILE__).'../images/upload/'.$row['id'].$newfilename; //Check if the file with the same name is already exists on the server if (!file_exists($newname)) { //Attempt to move the uploaded file to it's new place if ((move_uploaded_file($_FILES['uploaded_file']['tmp_name'].$newname))) { echo "It's done! The file has been saved as: ".$newfilename; } else { echo "Error: A problem occurred during file upload!"; } } else { echo "Error: File ".$_FILES["uploaded_file"]["name"]." already exists"; } } else { echo "Error: Only .jpg images under 350Kb are accepted for upload"; } } else { echo "Error: No file uploaded"; } include "../template/footer.php"; ?> Link to comment https://forums.phpfreaks.com/topic/170548-solved-upload-image-always-error/ Share on other sites More sharing options...
dachshund Posted August 16, 2009 Author Share Posted August 16, 2009 maybe it's just to do with my directory name/location. but i'm pretty sure it's fine. Link to comment https://forums.phpfreaks.com/topic/170548-solved-upload-image-always-error/#findComment-899605 Share on other sites More sharing options...
dachshund Posted August 16, 2009 Author Share Posted August 16, 2009 actually i worked it out. it's because you can't use ../ to step back a folder. is there anyway to do this? Link to comment https://forums.phpfreaks.com/topic/170548-solved-upload-image-always-error/#findComment-899617 Share on other sites More sharing options...
Andy-H Posted August 16, 2009 Share Posted August 16, 2009 $parts = explode("/", dirname(__FILE__)); unSet($parts[(count($parts) - 1)]); $newname = implode("/", $parts) . '/images/upload/' . $row['id'] . $newfilename; Link to comment https://forums.phpfreaks.com/topic/170548-solved-upload-image-always-error/#findComment-899619 Share on other sites More sharing options...
dachshund Posted August 16, 2009 Author Share Posted August 16, 2009 ok cheers, that works. after fixing the upload problem. it's somehow back. i get "Error: A problem occurred during file upload! /homepages/46/d193566068/htdocs/phptesting/images/upload/11/profilepicture.jpg" that directory is right so i can't work out what it is. here's my code. <?php include "../template/header.php"; //Сheck that we have a file if((!empty($_FILES["uploaded_file"])) && ($_FILES['uploaded_file']['error'] == 0)) { //Check if the file is JPEG image and it's size is less than 350Kb $filename = basename($_FILES['uploaded_file']['name']); $ext = substr($filename, strrpos($filename, '.') + 1); if (($ext == "jpg") && ($_FILES["uploaded_file"]["type"] == "image/jpeg") && ($_FILES["uploaded_file"]["size"] < 350000)) { //user $userid = $_SESSION['uid']; $query = "SELECT * FROM users WHERE id = '$userid'"; $result = mysql_query($query); $row = mysql_fetch_assoc($result); //Determine the path to which we want to save this file $parts = explode("/", dirname(__FILE__)); unSet($parts[(count($parts) - 1)]); $newname = implode("/", $parts) . '/images/upload/' . $row['id'] . '/' . $filename; //Check if the file with the same name is already exists on the server if (!file_exists($newname)) { //Attempt to move the uploaded file to it's new place if ((move_uploaded_file($_FILES['uploaded_file']['tmp_name'].$newname))) { echo "It's done! The file has been saved as: ".$filename; } else { echo "Error: A problem occurred during file upload!" .' ' .$newname; } } else { echo "Error: File ".$_FILES["uploaded_file"]["name"].$newname." already exists"; } } else { echo "Error: Only .jpg images under 350Kb are accepted for upload"; } } else { echo "Error: No file uploaded"; } include "../template/footer.php"; ?> Link to comment https://forums.phpfreaks.com/topic/170548-solved-upload-image-always-error/#findComment-899624 Share on other sites More sharing options...
Andy-H Posted August 16, 2009 Share Posted August 16, 2009 if ((move_uploaded_file($_FILES['uploaded_file']['tmp_name'].$newname))) { Change that to: if ((move_uploaded_file($_FILES['uploaded_file']['tmp_name'], $newname))) { move_uploaded_file Link to comment https://forums.phpfreaks.com/topic/170548-solved-upload-image-always-error/#findComment-899632 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.