PHP-новичок здесь
Я пытаюсь сделать простой скрипт для загрузки фотографии в мою базу данных.
Я знаю, что это не очень эффективно, но я все равно хочу это сделать.
Итак, у меня есть два файла .php:
<html>
<body>
<form action="upload.php">
<input type="file" name="photo">
<input type="submit" name="submit" value="Submit" />
</form>
</body>
а также
<?php
error_reporting( error_reporting() & ~E_NOTICE );
$conn = mysqli_connect("localhost", "root", "", "poze");
if(!$conn){
die("Connection failed: ".mysqli_connect_error());
}
else echo "Succes";
$imageName = mysql_real_escape_string($_FILES["image"]["name"]);
//$imageData = mysql_real_escape_string(file_get_contents($_FILES["image"]["tmp_name"]));
//$imageType = mysql_real_escape_string($_FILES["image"]["type"]);
if($imageName==NULL){
echo "Null";
}
else{
echo "The photo is okay!";
}
После загрузки любого изображения оно отображается как пустое.
Может ли кто-нибудь объяснить мне, почему? И как я мог это решить?
Сначала вы должны использовать этот элемент формы:
<form enctype="multipart/form-data" action="upload.php" method="POST">
а во-вторых, вы должны прочитать содержимое файла из временной папки и сохранить в БД:
$tmpName = $_FILES['userfile']['tmp_name'];
$fp = fopen($tmpName, 'r');
$content = fread($fp, filesize($tmpName));
$content = addslashes($content);
fclose($fp);
затем сохраните это содержимое в поле в MySQL типа BLOB.
PHP-новичок здесь
Я пытаюсь сделать простой скрипт для загрузки фотографии в мою базу данных.
Я знаю, что это не очень эффективно, но я все равно хочу это сделать.
Итак, у меня есть два файла .php:
<html>
<body>
<form action="upload.php">
<input type="file" name="photo">
<input type="submit" name="submit" value="Submit" />
</form>
</body>
а также
<?php
error_reporting( error_reporting() & ~E_NOTICE );
$conn = mysqli_connect("localhost", "root", "", "poze");
if(!$conn){
die("Connection failed: ".mysqli_connect_error());
}
else echo "Succes";
$imageName = mysql_real_escape_string($_FILES["image"]["name"]);
//$imageData = mysql_real_escape_string(file_get_contents($_FILES["image"]["tmp_name"]));
//$imageType = mysql_real_escape_string($_FILES["image"]["type"]);
if($imageName==NULL){
echo "Null";
}
else{
echo "The photo is okay!";
}
После загрузки любого изображения оно отображается как пустое.
Может ли кто-нибудь объяснить мне, почему? И как я мог это решить?
РЕШЕНИЮ:
Я изменил API, чтобы я мог использовать только mysqli
Индекс:
<html>
<body>
<form enctype="multipart/form-data" action="upload.php" method="POST">
<input type="file" name="photo">
<input type="submit" name="submit" value="Submit" />
</form>
</body>
PHP скрипт:
<?php
error_reporting( error_reporting() & ~E_NOTICE );
$conn = mysqli_connect("localhost", "root", "", "poze");
if(!$conn){
die("Connection failed: ".mysqli_connect_error());
}
else echo "Succes"."<br>";
$imageName = mysqli_real_escape_string($conn ,$_FILES["photo"]["name"]);
$imageData = mysqli_real_escape_string($conn, file_get_contents($_FILES["photo"]["tmp_name"]));
$imageType = mysqli_real_escape_string($conn, $_FILES["photo"]["type"]);
//process the image ...