Задать вопрос
Elmanovyurik
@Elmanovyurik
Гайды мое все...

Загрузка файлов на сервер php?

Доброго времени суток господа, возник такой вопрос, пишу сейчас скрипт с помощью которого собираюсь загружать файлы на сервер, в частности картинки
php.ini
file_uploads=on
upload_tmp_dir=/tmp

addbanner.php - обработчик кнопки
if($Module == 'requesthandleraddbanner' and $_POST['enter'])
		{
			$_POST['link'] = FormChars($_POST['link']);
			if($_FILES["upload"]["size"] > 1024*3*1024)
  				{
  					MessageSend(1,'Размер файла превышает три мегабайта.','/admin/editbanner/addbanner');
    				exit;
   				}
   				// Проверяем загружен ли файл
   				if(is_uploaded_file($_FILES["upload"]["tmp_name"]))
				    {
				    $a = $_FILES['upload']['name'];
				    $b = $_FILES['upload']['type'];
				    $c = $_FILES['upload']['size'];
				    $d = $_FILES['upload']['tmp_name'];
				    	// Если файл загружен успешно, перемещаем его
				    	// из временной директории в конечную
				    	move_uploaded_file($_FILES["upload"]["tmp_name"], "/resource/img/".$_FILES["upload"]["name"]);
				    	mysqli_query($CONNECT, "INSERT INTO `banner` VALUES ('', '$_POST[link]','$_FILES[name]', NOW())");
						MessageSend(3,'Данные добавлены в базу данных.','/admin/editbanner');
				    } 
				else 
					{
						MessageSend(1,'Ошибка загрузки файла.','/admin/editbanner/addbanner');
   					}
   					print_r($_FILES);
		}

Страница где находиться кнопка
<div id="Page">
		<div class="banner_form">
	 		<form method="POST" action="requesthandleraddbanner" enctype="multipart/form-data">
	 				<script type="text/javascript">
						function fileformlabel (str)
							{
					    		if (str.lastIndexOf('\\'))
					    			{
					       		 		var i = str.lastIndexOf('\\')+1;
					    			}
					    		else
					    			{
					        			var i = str.lastIndexOf('/')+1;
					    			}						
							    var filename = str.slice(i);			
							    var uploaded = document.getElementById("fileformlabel");
							    uploaded.innerHTML = filename;
							}
					</script>
	 				<h3>Форма добавления баннера</h3>
	 				<input type = "text" name = "link" placeholder = "Введите ссылку для баннера" required autocomplete="off">
	 				<div class="fileform">
	 					<div id="fileformlabel"></div>
						<div class="selectbutton">Обзор</div>
						<input id="upload" type = "file" accept="image/*" name="upload" onchange="fileformlabel(this.value);"/>
					</div>
					<input type = "submit" name = "enter" value = "Добавить баннер">
					<a href="/admin/editbanner"> Вернуться </a>
	 		</form>
	 	</div>
	 	<div class="banner_form">
	 		<form method="POST" action="requesthandleraddcommercialbanner" enctype="multipart/form-data">
	 				<script type="text/javascript">
						function fileformlabelcommercial (str)
							{
					    		if (str.lastIndexOf('\\'))
					    			{
					       		 		var i = str.lastIndexOf('\\')+1;
					    			}
					    		else
					    			{
					        			var i = str.lastIndexOf('/')+1;
					    			}						
							    var filename = str.slice(i);			
							    var uploaded = document.getElementById("fileformlabelcommercial");
							    uploaded.innerHTML = filename;
							}
					</script>
	 				<h3>Форма добавления коммерческого баннера</h3>
	 				<input type = "text" name = "link" placeholder = "Введите ссылку для баннера" required autocomplete="off">
	 				<div class="fileform">
	 					<div id="fileformlabelcommercial"></div>
						<div class="selectbutton">Обзор</div>
						<input id="upload" type = "file" accept="image/*" name="upload" onchange="fileformlabelcommercial(this.value);"/>
					</div>
					<input type = "submit" name = "enter" value = "Добавить баннер">
					<a href="/admin/editbanner"> Вернуться </a>
	 		</form>
	 	</div>
	</div>


При нажатии на кнопку файл не попадает на сервер, и я решил посмотреть что за ошибки мне пишет, получилось как-то так:

Warning: move_uploaded_file(/resource/img/1111.jpg): failed to open stream: No such file or directory in /home/c/cm81097/public_html/module/admin/editbanner/requesthandler/addbanner.php on line 19

Warning: move_uploaded_file(): Unable to move '/tmp/phpCWfNqn' to '/resource/img/1111.jpg' in /home/c/cm81097/public_html/module/admin/editbanner/requesthandler/addbanner.php on line 19

Notice: Undefined index: name in /home/c/cm81097/public_html/module/admin/editbanner/requesthandler/addbanner.php on line 20

Warning: Cannot modify header information - headers already sent by (output started at /home/c/cm81097/public_html/module/admin/editbanner/requesthandler/addbanner.php:19) in /home/c/cm81097/public_html/index.php on line 252

Ищу помощи среди вас, ибо у самого на данный момент нечего не выходит
P.S считайте 18 строку ибо там еще тег <? php
  • Вопрос задан
  • 595 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
Elmanovyurik
@Elmanovyurik Автор вопроса
Гайды мое все...
изменил путь на /home/c/cm81097/public_html/resource/img/ - и все заработало
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
dima9595
@dima9595
Junior PHP
Попробуйте заменить
mysqli_query($CONNECT, "INSERT INTO `banner` VALUES ('', '$_POST[link]','$_FILES[name]', NOW())");
на это
mysqli_query($CONNECT, "INSERT INTO 'banner' VALUES ("", "$_POST['link']","$_FILES['name']", NOW())");
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы