Sorry to ask such a stupid question, but can't understand why this simple instruction to upload a file (passed from an html form) isn't working:

move_uploaded_file($_FILES, 'files/pic.jpg');

Post your codes in code tag. Have you tried chmod 777 on destination folder?

Hello, thanks so much for responding. The permissions are all OK.

Here is the hmtl form(slightly truncated - with the old data from the table called up with php echos):

<form action="news2.php" enctype="multipart/form-data" method="post">
<input type=hidden name="id" VALUE='<?php echo $row ?>'><input type="hidden" name="MAX_FILE_SIZE" value="350000"><tr>
<?php echo "<img src='files/news1.jpg'>"; ?><br /><input type="hidden" name="MAX_FILE_SIZE" value="10000" />Choose picture: <input name="news1" type="file" /><?php echo $row ?></textarea></td>

</table><p><input name="upload" type="submit" value="Upload changes">

Which is passed on to a new page:

$target_path = "files/";
$target_path = $target_path . basename( $_FILES['news1']['name']); 
move_uploaded_file($_FILES['news1']['tmp_name'], 'files/news1.jpg');
$con = mysql_connect("localhost","user","pass"); 
if (!$con) 
die('Can't connect: ' . mysql_error()); 
mysql_select_db("database", $con);
$query = "UPDATE news SET section1='$section1', section2='$section2', section3='$section3', section4='$section4' WHERE id='$id'";
$result = mysql_query($query);
header ( 'Location:' );
// close connection
move_uploaded_file($_FILES['news1']['tmp_name'], 'files/news1.jpg');

Replace files/news1.jpg with the path + image name. You need to use the full path. E.g.,

move_uploaded_file($_FILES['news1']['tmp_name'], '/home/<your_username>/htdocs/files/news1.jpg');
This article has been dead for over six months. Start a new discussion instead.