Sourav Sarkar-SS Ответов: 2

загрузите изображение, а затем отобразите его на PHP


Я разрабатываю сайт на основе профиля, где профили будут заполняться в HTML-форме, а через PHP они будут храниться в MYSQL.

Моя проблема в том, что участник будет загружать свою фотографию профиля. Чего я хочу, так это ...

1. загрузите фотографию профиля на сервер
2. переименуйте файл в memberID
3. Сохраните ссылку на файл(т. е. upload\memberid.jpg) для хранения в MySql.

Пожалуйста, помогите мне решить эту проблему.
Я использовал следующий код

<?php
$allowedExts = array("jpg", "jpeg", "gif", "png");
$extension = end(explode(".", $_FILES["file"]["name"]));
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 20000)
&& 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
      {
      move_uploaded_file($_FILES["file"]["tmp_name"],
      "upload/" . $_FILES["file"]["name"]);
      echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
      }
    }
  }
else
  {
  echo "Invalid file";
  }
?> 

но вы хотите переименовать файл в memberid[некоторое значение текстового поля].
Я не хочу, чтобы файл сообщения об ошибке уже существовал.

Пожалуйста, пожалуйста, помогите мне.

enhzflep

Пара моментов, которые приходят на ум
■ Вы можете скачать phpBB (бесплатное программное обеспечение для форума) и посмотреть на источник
■ При загрузке файлов он (а) переименовывает их (б) отслеживает исходное имя и переименованное имя
■ использование time() даст вам число, которое вы можете преобразовать в строку и использовать в качестве имени файла - хотя вы будете ограничены 1 загрузкой в секунду или миллисекунду, независимо от разрешения времени (я забыл)
■ Вы можете просто закомментировать эти 3 строки, чтобы удалить "уже существующий" msg:
если (file_exists("загрузить/" . Переменную $_FILES["файл"]["имя"]))
{
echo $_FILES["file"]["name"] . " уже существует. ";
}
■ Для переименования файла можно внести следующие изменения:
$newFilename = calcNewNameForFile();
...
move_uploaded_file($_FILES["file"]["tmp_name"], "upload/".$newFilename);
...

Mohibur Rashid

Вы можете опубликовать его в качестве ответа

[no name]

быть ответом.
спасибо
сообщение в качестве ответа

2 Ответов

Рейтинг:
2

ahmy56

$photo=$_FILES['photo']['name'];
			$size=$_FILES['photo']['size'];
			$type=$_FILES['photo']['type'];
			if($size > 11120000)
			{
				$err="File size is big";
			}
			else if($type!="image/jpg" && $type!="image/gif" && $type!="image/png" && $type!="image/jpeg")
			{
				$err="File size is big";
			}
			else
			{
				$t="images/";
				$target=$t.basename($_FILES["photo"]["name"]);
				$ext = pathinfo($_FILES['photo']['name'], PATHINFO_EXTENSION);
				while (file_exists($target))
				{
					$photo=uniqid() . '.'.$ext;
					$target=$t.$photo;	
				}
				move_uploaded_file($_FILES["photo"]["tmp_name"],$target);
			}
		}


Рейтинг:
16

enhzflep

По просьбе Сурава я перепостил свои комментарии в качестве решения проблемы.

Пара моментов, которые приходят на ум
■ Вы можете скачать phpBB (бесплатное программное обеспечение для форума) и посмотреть на источник
■ При загрузке файлов он (а) переименовывает их (б) отслеживает исходное имя и переименованное имя
■ использование time() даст вам число, которое вы можете преобразовать в строку и использовать в качестве имени файла - хотя вы будете ограничены 1 загрузкой в секунду или миллисекунду, независимо от разрешения времени (я забыл)
■ Вы можете просто закомментировать эти 3 строки, чтобы удалить "уже существующий" msg:

if (file_exists("upload/" . $_FILES["file"]["name"]))
      {
      echo $_FILES["file"]["name"] . " already exists. ";
      }

■ Для переименования файла можно внести следующие изменения:
$newFilename = calcNewNameForFile();
 ...
 move_uploaded_file($_FILES["file"]["tmp_name"], "upload/".$newFilename);
 ...


[no name]

+5,
но я не принимаю этот ответ.,
но я сделаю это.