class.upload.php is a powerful and mature PHP class to manage uploaded files, and manipulate images in many ways. The script is available under a GPL license.
Ok. It is now filling the name in correctly on the database, however I am uploading 4 and its inserting the same name in the 4 fields?
My code...
include('class.upload.php');
$files = array();
foreach ($_FILES['my_field'] as $k => $l) {
foreach ($l as $i => $v) {
if (!array_key_exists($i, $files))
$files[$i] = array();
$files[$i][$k] = $v;
}
}
foreach ($files as $file) {
$handle = new Upload($file);
if ($handle->uploaded) {
$handle->Process("./");
if ($handle->processed) {
// it is only here you know that your upload has succeeded
// so you can insert the filename in your database here
$sql = "INSERT INTO photos2 (my_field1, my_field2, my_field3, my_field4) ";
$sql .= "VALUES ('".mysql_real_escape_string($handle->file_dst_pathname)."', '".mysql_real_escape_string($handle->file_dst_pathname)."', '".mysql_real_escape_string($handle->file_dst_pathname)."', '".mysql_real_escape_string($handle->file_dst_pathname)."')";
$x = mysql_query($sql) or die(mysql_error());
} else {
echo 'Error: ' . $handle->error;
}
} else {
echo 'Error: ' . $handle->error;
}
unset($handle);
}
This is basic PHP, we are starting to get out of topic in this forum...
Your code should look like this then:
include('class.upload.php');
// create an array to hold your filnames
$images = array();
$files = array();
foreach ($_FILES['my_field'] as $k => $l) {
foreach ($l as $i => $v) {
if (!array_key_exists($i, $files))
$files[$i] = array();
$files[$i][$k] = $v;
}
}
foreach ($files as $file) {
$handle = new Upload($file);
if ($handle->uploaded) {
$handle->Process("./");
if ($handle->processed) {
echo 'OK';
// add the filename to the array
$images[] = $handle->file_dst_pathname;
} else {
echo 'Error: ' . $handle->error;
}
} else {
echo 'Error: ' . $handle->error;
}
unset($handle);
}
// you can insert the filenames in your database here,
// from the array in which you stocked them
// but you will need to do some error checking, in case of the upload didn't work
$sql = "INSERT INTO photos2 (my_field1, my_field2, my_field3, my_field4) ";
$sql .= "VALUES ('".mysql_real_escape_string($images[0])."', '".mysql_real_escape_string($images[1])."', '".mysql_real_escape_string($images[2])."', '".mysql_real_escape_string($images[3])."')";
$x = mysql_query($sql) or die(mysql_error());
My code...
Your code should look like this then: