用PHP发布超过1张图片?

时间:2014-08-15 07:11:39

标签: php mysql

到目前为止,我只能使用以下代码将一张带有html格式的图片发布到mySql表中:

$foldername="events/"; //path to save image
$con=mysql_connect("mysql.website.com","xxxxx","xxxxxx") or die("Fail");
mysql_select_db("u141416789_fin")  or die("Fail");
if (!empty($_FILES["image"]["tmp_name"]))
{

if($image=="image/jpeg" || $image=="image/jpg" || $image=="image/gif" || $image=="image/x-png")
{           
    $gambar = $foldername. basename($_FILES['image']['name']);       
    if (move_uploaded_file($_FILES['image']['tmp_name'], $gambar)) {
        echo "Gambar berhasil dikirim ".$gambar;

        $sql="INSERT INTO education (id, category, title, date, content, fullcontent, image) 
        VALUES (0, 'events', '$title', '$date', '$content', '$fullcontent', '$gambar')";
        $res=mysql_query($sql) or die (mysql_error());
 } 
   else {echo "Image fail to send";}
 } 
   else {echo "Image must be .jpg .gif .png";}
 } 
   else {echo "Please choose image";}

注意:我从上面的代码中删除了几行,例如" $ id,$ category,$ title等,因为它们不是这个问题中的主要问题

我用html格式的文件字段发布图片。

     <input type="file" name="image" id="image" />

那时,我只需要在文章模板中张贴一张图片。

但今天,我需要发布多张图片。

上面的php代码旁边是否有一个简单的方法或其他PHP代码,以便它可以帮助我发布多张图片?



这是我的完整代码

<?php

$text = str_replace('\'', '\'\'', $text);

$namafolder="events/"; //tempat menyimpan file gambar
$tpl_path="events/";
$tpl_file = "eventstemplate.html";//nama template
$submission_path="events/";

$con=mysql_connect("mysql.idhostinger.com","u141416789_fin","alkasih") or die("Gagal");
mysql_select_db("u141416789_fin")  or die("Gagal");
if (!empty($_FILES["image"]["tmp_name"]))
{
$id=$_GET['id'];
$title=$_POST['title'];
$date=$_POST['date'];
$content=$_POST['content'];
$fullcontent=$_POST['fullcontent']; 
$image=$_FILES['image']['type'];
if($image=="image/jpeg" || $image=="image/jpg" || $image=="image/gif" || $image=="image/x-png")
{           
    $gambar = $namafolder . basename($_FILES['image']['name']);       
    if (move_uploaded_file($_FILES['image']['tmp_name'], $gambar)) {
        echo "Gambar berhasil dikirim ".$gambar;

        $sql="INSERT INTO education (id, category, title, date, content, fullcontent, image) 
        VALUES (0, 'events', '$title', '$date', '$content', '$fullcontent', '$gambar')";
 $res=mysql_query($sql) or die (mysql_error());
} else {echo "Gambar gagal dikirim";}
} else {echo "Jenis gambar yang anda kirim salah. Harus .jpg .gif .png";}
} else {echo "Anda belum memilih gambar";}



    $data['keywords']=$_POST['keywords'];
    $data['date']=$_POST['date'];
    $data['title']=$_POST['title'];
    $data['content']=$_POST['content'];
    $data['fullcontent']=$_POST['fullcontent'];
    $data['filename']=$_POST['filename'];


    $placeholders= array ("{keywords}", "{date}", "{title}", "{content}", "{fullcontent}", "{filename}");
    $tpl=file_get_contents($tpl_path.$tpl_file);
    $new_submission_file = str_replace($placeholders, $data, $tpl);
    $php_file_name=$title.".html";

    $fp=fopen($submission_path.$php_file_name, "w");
    fwrite($fp, $new_submission_file);
    fclose($fp);



  mysql_close($con);        
  ?>

2 个答案:

答案 0 :(得分:1)

您可以使用带有属性&#34; multiple&#34;

的文件上传输入
<input type="file" name="image[]" id="image" multiple accept="image/*">

而且,从PHP中,您可以将这些文件作为数组访问。

请参阅以下链接了解更多详情。 http://php.net/manual/en/features.file-upload.multiple.php

答案 1 :(得分:0)

此答案仅适用于PDO示例。

PDO连接。还有一个针对错误记录的Try Catch构造。

$dbHost = 'localhost';
$dbUser = 'root';
$dbPassword = 'password';
$dbDatabase = 'databaseName';
$dbCharset = 'UTF8';

try {
    $db = new PDO('mysql:host=' . $dbHost . ';dbname=' . $dbDatabase . ';charset=' . $dbCharset . ';', $dbUser, $dbPassword);
} catch (PDOException $connectionError) {
    throw new Exception('Connection failed: ' . $connectionError->getMessage());
}

使用预准备语句的简单查询。

$thisQuery = $db->prepare('SELECT * FROM table WHERE id = :columID');
$thisQuery->bindParam(':columID', 1, PDO::PARAM_INT);
$thisQuery->execute();
$thisQuery->fetch(PDO::FETCH_OBJ);

希望它对你有所帮助。