我對PHP是全新的,但必須瞭解我能在工作中真正快速找到什麼東西。我試圖創建一個表單,然後將答案保存到數據庫中的一行和服務器上的圖像中。下面的代碼是來自網絡上的教程等與我的補充在那裏。除了在數據庫中保存圖片網址之外,我想我還有90%的存在。我猜測代碼中的「foreach」部分有問題。多個文件上傳字段URL到SQL數據庫使用PHP
我想實現的是將每個文件上傳URL保存在數據庫的一列中。目前我只創建了imageurl字段,但我猜我會需要imageurl2等我試圖尋找下一部分,但無法找到它。我假設我真正需要實現的是代碼調用所有多個文件上傳URL(數組)的方法,然後在插入後執行插入操作?
HTML代碼:
<form action="form.php" method="post" enctype="multipart/form-data">
<label>Date:</label>
<br>
<input name="date" type="date">
<label>Name:</label>
<br>
<select name="visitor">
<option value="name1">Name One</option>
<option value="name2">Name Two</option>
</select>
<label>Pub:</label>
<br>
<select name="pub">
<option value="pubOne">Pub One</option>
<option value="pubTwo".Pub Two</option>
</select>
<label>Comment:</label>
<br>
<textarea cols="30" rows="5" name="comment"></textarea>
<label>Upload Image:</label>
<br>
<input name="fileToUpload[]" type="file" multiple="">
<input class="formbtn" type="submit" value="Submit">
</form>
PHP代碼 - 我已經更換了數據庫連接的細節與 「XXX」 但是我對我的代碼連接細
<?php
print_r($_POST);
$servername = 'xxx';
$username = 'xxx';
$password = 'xxx';
$dbname = 'xxx';
// Create connection to server
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
echo "<div><center><h1>Connected successfully</h1></center></div>";
// Get all the values from input
$date = $_POST['date'];
$visitor = $_POST["visitor"];
$pub = $_POST['pub'];
\t $comment = $_POST['comment'];
date_default_timezone_set('UTC');
if (!file_exists("uploads/" .date('Y') . '/' .date('m') . '/')) {
mkdir("uploads/" .date('Y') . '/' .date('m') . '/', 0777, true);
}
require_once('ImageManipulator.php');
foreach($_FILES['fileToUpload']['tmp_name'] as $key => $tmp_name) {
\t
\t if ($_FILES['fileToUpload']['error'][$key] > 0) {
// Insert data into table
\t \t $sql = "INSERT INTO visits (date, visitor, pub, comment)
\t \t VALUES ('$date', '$visitor', '$pub', '$comment')";
\t } else {
\t $image_mime = image_type_to_mime_type(exif_imagetype($_FILES['fileToUpload']['tmp_name'][$key]));
\t $allowedFiles = array("image/png","image/jpeg","image/gif");
\t echo "File type:" . $image_mime . "<br>";
\t if(!in_array($image_mime, $allowedFiles)){
echo "The picture is not allowed.<br>";
\t } else
\t {
$newNamePrefix = time() . '_';
$manipulator = new ImageManipulator($_FILES['fileToUpload']['tmp_name'][$key]);
// resizing to 200x200
$newImage = $manipulator->resample(200, 200);
// saving file to uploads folder
\t \t $target_dir = "uploads/" .date('Y') . '/' .date('m') . '/';
\t \t $target_file = $target_dir .date('Ymd-his') . '-' . $visitor . '-' . basename($_FILES["fileToUpload"]["name"][$key]);
$manipulator->save($target_file);
\t \t // Insert data into table
\t \t $sql = "INSERT INTO visits (date, visitor, pub, comment, imageurl) VALUES ('$date', '$visitor', '$pub', '$comment', '$target_file')";
\t \t echo 'Image resized and uploaded!<br>';
}
}
}
if ($conn->query($sql) === TRUE) {
echo "<p>New record created successfully</p>";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
?>
它給你什麼錯誤? – 2014-12-03 09:04:08
嗨Josan,沒有錯誤 - 它只保存圖像的URL在SQL領域的一個 - 我怎樣才能保存每個網址在另一個領域?所有圖像都被保存到服務器。 – KishVaja 2014-12-03 16:16:23