2016-10-09 172 views
0

PHP新手在這裏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!"; 
} 

上傳任何樣的圖片後,它呼應了爲空。

有人可以解釋我爲什麼嗎?我怎麼能解決它?

+0

那是因爲... e你的表單缺少'enctype =「multipart/form-data」'和'method =「post」'。 –

+0

嗯,不,不起作用: - ? –

+0

您是否包含我提到的屬性[there](http://stackoverflow.com/questions/39948173/php-uploading-photos?noredirect=1#comment67176654_39948173)? –

回答

0

這裏

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 ... 
0

首先,你必須使用這種形式的元素:

<form enctype="multipart/form-data" action="upload.php" method="POST"> 

,其次你必須閱讀從臨時文件夾中的文件內容,並保存到DB:

$tmpName = $_FILES['userfile']['tmp_name']; 
$fp  = fopen($tmpName, 'r'); 
$content = fread($fp, filesize($tmpName)); 
$content = addslashes($content); 
fclose($fp); 

那麼這些內容保存到一個外地在MySQL BLOB類型。