【发布时间】:2015-05-27 00:49:24
【问题描述】:
我有一个表单的代码,用于将图片上传到我的网站并将信息保存到 mysql 数据库:
<form method='post'>
Album Name: <input type="text" name="title" />
<input type="submit" name="submit" value="create" />
</form>
<h4>Add Photo</h4>
<form enctype="multipart/form-data" method="post">
<?php
require_once 'config.php';
$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
if(isset($_POST['upload'])){
$caption = $_POST['caption'];
$albumID = $_POST['album'];
$file = $_FILES ['file']['name'];
$file_type = $_FILES ['file']['type'];
$file_size = $_FILES ['file']['size'];
$file_tmp = $_FILES ['file']['tmp_name'];
$random_name = rand();
if(empty($file)){
echo "Please enter a file <br>";
} else{
move_uploaded_file($file_tmp, 'uploads/'.$random_name.'.jpg');
$ret = mysqli_prepare($mysqli, "INSERT INTO photos (caption, image_url, date_taken)
VALUES(?, ?, NOW())");
$filename = "uploads/" + $random_name + ".jpeg";
mysqli_stmt_bind_param($ret, "ss", $caption, $filename);
mysqli_stmt_execute($ret);
echo "Photo successfully uploaded!<br>";
}
}
?>
Caption: <br>
<input type="text" name="caption">
<br><br>
Select Album: <br>
<select name="album">
<?php
$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
$result = $mysqli->query("SELECT * FROM albums");
while ($row = $result->fetch_assoc()) {
$albumID = $row['albumID'];
$title = $row['title'];
echo "<option value='$albumID'>$title</option>";
}
?>
</select>
<br><br>
Select Photo: <br>
<input type="file" name="file">
<br><br>
<input type="submit" name="upload" value="Upload">
</form>
这成功地将图片上传到我的“上传”文件夹以及我的 mysql 数据库,但是,我想输入图片 URL“上传/(生成的随机名称).jpg” 我没有用我当前的代码做到这一点,我的照片表的“image_url”列中记录的信息只是生成的随机数。没有开头的“uploads/”和结尾的“.jpg”。
我应该提到我的照片表的架构是: 标题,image_url,date_taken,imageID
任何帮助将不胜感激! 提前谢谢你
【问题讨论】:
-
使用“一”形式;第一个是与另一个“超出范围”;换句话说,左手不知道右手拿着什么。另外,这个
$filename = "uploads/" + $random_name + ".jpeg";错误的字符+连接在一起。这不是 JS/C 语言,而是 PHP。 -
@Fred-ii- 谢谢!你知道如何使用 CONCAT() 函数(或任何其他函数)来解决这个问题吗?
-
$filename = "uploads/" . $random_name . ".jpeg"; -
非常感谢!!!! @Fred-ii- 效果很好
-
不客气,很高兴它成功了,干杯
标签: php mysql mysqli image-uploading