Я пытаюсь сделать функцию загрузки, которая добавляет водяной знак к каждому файлу, загруженному в память, а затем сохраняет файлы в определенную папку. Однако я не могу заставить компонент водяного знака работать. Я точно знаю, что функции загрузки работают без добавления кода водяного знака. Я считаю, что ошибка должна быть там, где код водяного знака «переносит» временный файл на код, который перемещает файл на жесткий диск. Как я могу исправить эту проблему?Добавить водяной знак в файл во время загрузки
Код выглядит следующим образом:
foreach($_FILES['files']['tmp_name'] as $key => $tmp_name){
$file_name = $_FILES['files']['name'][$key];
$file_size =$_FILES['files']['size'][$key];
$file_tmp =$_FILES['files']['tmp_name'][$key];
//$file_type=$_FILES['files']['type'][$key];
//if($file_size > 2097152){
//$errors[]='File size must be less than 2 MB';
//}
// echo '<img src="../images/watermark.gif">';
$q = "INSERT INTO media (file_name, album_id, file_size) VALUES ('$file_name','$album_id', '$file_size')";
$r = mysqli_query ($dbc, $q);
$desired_dir = '../../customers/' . $customerFolder . '/';
// load the watermark and the photo
$watermark = imagecreatefromgif('../images/watermark.gif');
$photo = imagecreatefromjpeg($file_tmp);
// center watermark on the photo
$wx = imagesx($photo)/2 - imagesx($watermark)/2;
$wy = imagesy($photo)/2 - imagesy($watermark)/2;
imagecopy($photo, $watermark, $wx, $wy, 0, 0, imagesx($watermark), imagesy($watermark));
if(empty($errors)==true){
move_uploaded_file($photo,"$desired_dir".$file_name);
//mysql_query($q);
}else{
print_r($errors);
}
}
Что именно не работает? –
Осторожно ... вы потенциально открыли себя атакам SQL-инъекций. Используйте подготовленные/параметризованные запросы с PDO или аналогичными. Кроме того, если этот '$ customerFolder' поступает от пользователя, убедитесь, что конечный путь находится только в каталоге, в котором вы хотите. Не позволяйте пользователю указывать имя файла. Не вмешивайся в докровать. В противном случае, нечего загружать 'something-evil.php' и запускать его удаленно. – Brad
также избегать использования «../../» – MarZab