使用表单

时间:2016-03-12 20:13:06

标签: php

您好我想使用PHP脚本和形式html将图像保存到mysql但是在这段代码中我看到图像没有发送到php你可以帮助我,我是在php的初学者。

Form.html



<form action="upload_image.php" method="post" enctype="multipart/form-data">
<p>
    <input type="file" name="photo" />
    <input type="submit" value="Submit" name="submit"/>
</p>
</form>
<b> 
<a href="upd.php">Afficher la premiere image de la base de donnes </a>
</b>
&#13;
&#13;
&#13;

php脚本:

&#13;
&#13;
<?php
	echo ini_get( 'file_uploads' );
	
	if($_SERVER['REQUEST_METHOD']=='POST'){
		$con = mysqli_connect("localhost","root","","othmane");
		if ($con->connect_errno) {
		printf("Connect failed: %s\n", $mysqli->connect_error);
		exit();
		}
		$img = $_POST['photo'];
		if($img!=null){
		$sql = "INSERT INTO images (image) VALUES (?)";
		
		$stmt = mysqli_prepare($con,$sql);
		
		mysqli_stmt_bind_param($stmt,"s",$img);
		mysqli_stmt_execute($stmt);
		
		$check = mysqli_stmt_affected_rows($stmt);
		
		if($check == 1){
			echo "Image Uploaded Successfully";
		}else{
			echo "Error Uploading Image";
		}
		
		}else{
		echo "image not found";
			}
		mysqli_close($con);
	}else{
		echo "Error";
	}
	?>
&#13;
&#13;
&#13;

为什么图像没有发送到脚本?我总是在php中找不到图像。

1 个答案:

答案 0 :(得分:2)

POST方法访问文件元素的正确方法不是$img = $_POST['photo']。您应该使用$_FILE var,例如$img = $_FILE['photo']['name']来获取文件名。

您可以从$_FILE var:

获得一些不同的信息

$_FILES['photo']['name']
客户端计算机上文件的原始名称。

$_FILES['photo']['type']
文件的mime类型,如果浏览器提供了此信息。一个例子是&#34; image / gif&#34;。然而,在PHP方面没有检查这种mime类型,因此不要将其值视为理所当然。

$_FILES['photo']['size']
上载文件的大小(以字节为单位)。

$_FILES['photo']['tmp_name']
上载文件存储在服务器上的文件的临时文件名。

$_FILES['photo']['error']
与此文件上载相关联的错误代码。

请看这里:http://php.net/manual/en/features.file-upload.post-method.php

注意:如果您需要将图像存储在数据库中,则需要将文件转换为二进制数据并以BLOB类型存储在数据库中。
看这里:http://dev.mysql.com/doc/refman/5.0/en/blob.html

另外,一种好方法是将文件存储在主机上的文件夹中,并将路径保存在数据库中。