用惯了JAVA,感觉PHP真是强大啊,上传文件居然几句话就搞定了。不知道是是程序员的悲哀呢,还是程序员的悲哀呢?
1.很明显,首先应该用<input type="file"/>这是HTML默认的标签,让用户可以选择文件。
2.用$_FILES["***"]["name"]可以获得文件的名字,其实在点上传按钮前,文件就已经被上传到了服务器默认的文件夹中,所以通过$_FILES["***"]["tmp_name"]获得临时存储的名字,通过move_uploaded_file($src,$destination)可以将文件移动到你需要的位置。
至于数据库,就起到一个存储文件位置以便读取显示的作用。示例代码如下(目前用PHP还非常不熟练,故代码没有讲究美观以及健壮性,主要是对学到的知识起一个实验性的作用)。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8;"/>
<title></title>
</head>
<body>
<?php
//执行sql语句
function executeSql($imgurl){
$conn = mysqli_connect("localhost","root","root","test");
$sql = "insert into tb_img(imgurl) values('{$imgurl}')";
mysqli_query($conn,$sql);
mysqli_close($conn);
}
//执行sql查询语句
$conn = mysqli_connect("localhost","root","root","test");
$sql = "select * from tb_img";
$result = mysqli_query($conn,$sql);
while(($row=mysqli_fetch_array($result))){
echo "<img src='".$row["imgurl"]."'/><br/>";
}
if(isset($_POST["submit"])){
//如果点击了上传按钮
if(empty($_FILES["myimg"]["name"])){
echo '<script>alert("请选择上传的文件。");</script>';
}else{
$destination = $_FILES["myimg"]["name"];
move_uploaded_file($_FILES["myimg"]["tmp_name"], $destination);
executeSql($destination);
echo '保存成功!';
}
}
?>
<!--上传图片的form表单-->
<form enctype="multipart/form-data" action="<?php echo $_SERVER["PHP_SELF"];?>" method="post">
<!--上传文件的大小-->
<!--<input type="hidden" name="MAX_FILE_SIZE" value="32768"/>-->
上传图片:<input type="file" name="myimg" value="查找"/>
<input type="submit" value="上传" name="submit"/>
</form>
</body>
</html>