INTRO: Я создаю сайт «Социальная сеть». Это скорее учебное упражнение, чем бизнес-предприятие. Я создал простую версию входа и регистрации (без шифрования), они используют PHPMyadmin и работают.
Я создал форму для загрузки изображения (для последующего отображения). Изображение сохраняется на сервере, тогда мне нужно сохранить путь к db … но это бит, где все идет не так!
На каждой странице есть «session_start ()»;
Форма:
<form action="upload_ppl.php" method="post" enctype="multipart/form-data"> <label for="file">Filename:</label> <input type="file" name="file" id="file"><br> <input type="submit" name="submit" value="Submit"> </form>
upload_ppl.php:
<?php session_start(); $allowedExts = array("gif", "jpeg", "jpg", "png"); $temp = explode(".", $_FILES["file"]["name"]); $extension = end($temp); if ((($_FILES["file"]["type"] == "image/gif") || ($_FILES["file"]["type"] == "image/jpeg") || ($_FILES["file"]["type"] == "image/jpg") || ($_FILES["file"]["type"] == "image/pjpeg") || ($_FILES["file"]["type"] == "image/x-png") || ($_FILES["file"]["type"] == "image/png")) && ($_FILES["file"]["size"] > 2000) && in_array($extension, $allowedExts)) { if ($_FILES["file"]["error"] > 0) { echo "Return Code: " . $_FILES["file"]["error"] . "<br>"; } else { echo "Upload: " . $_FILES["file"]["name"] . "<br>"; echo "Type: " . $_FILES["file"]["type"] . "<br>"; echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>"; echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>"; if (file_exists("upload/" . $_FILES["file"]["name"])) { echo $_FILES["file"]["name"] . " already exists. "; } else { $image_name= $FILES["file"]["name"]; $path=move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . rand().$_FILES["file"]["name"]); echo "Stored in: " . "upload/" . $_FILES["file"]["name"]; if(mysql_query("INSERT INTO *table* (*column*) VALUES ('$path')")){ echo "Successfull!!";} else { echo 'fail';} } } } else { echo "Invalid file"; } ?>
Обратите внимание, что на странице «connection.page» после входа в систему установлено соединение db! Нужно ли переносить это вперед с помощью переменной сеанса, просто создайте новое соединение? Я пробовал тонн. Все предложения были оценены. Спасибо, парни!
У меня нет прямого ответа на вашу проблему, но я хотел бы поделиться этой ссылкой (если вы ее еще не видели) http://www.developphp.com/list_php_video.php#How_to_Build_a_Social_Network_Website это помогло мне создать собственный социальный Сайт несколько месяцев назад, мой сайт, который он не завершил, но учебные материалы на сайте выше, позволили мне пройти процесс загрузки изображений, и он работал красиво.
То, как это делается, немного отличается от того, как вы это делаете, но надейтесь, что это поможет вам в правильном направлении, если вы не сразу получите решение.
Удачи!
Установите несколько переменных, например
$folder = "upload/" $suffix = rand();
изменить эту строку
$path=move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . rand().$_FILES["file"]["name"]);
в
$path=move_uploaded_file($_FILES["file"]["tmp_name"], $folder . $suffix . $_FILES["file"]["name"]);
Тогда ваш путь будет,
$fullPath = $folder . $suffix . $_FILES["file"]["name"]);
под вашим текущим кодом вы не можете вытащить путь к файлу, потому что вы не присвоили его переменной, которую вы можете захватить и сохранить.
ваш путь $ all не так. Исправьте свое чудо с этим
else { $image_name = rand().$_FILES["file"]["name"]; $path = "upload/" . $imagename; move_uploaded_file($_FILES["file"]["tmp_name"],$path); echo "Stored in: " . $path; if(mysql_query("INSERT INTO *table* (*column*) VALUES ('$path')")){ echo "Successfull!!";} else { echo 'fail';} }