簡體   English   中英

將多個圖像上傳到Apache服務器上的mysql數據庫

[英]Uploading multiple images to mysql database on Apache server

我必須將大約3000張圖片上傳到Apache服務器上的mysql數據庫中。 (我知道你們中有些人會說將圖像插入表中而不使用url是不明智的,但是我被迫這樣做)無論如何,當我上傳大約20張圖像時,我的腳本運行良好。 當我嘗試上傳大約40張圖片時,它僅插入18-20張圖片。 如果我要上傳50張以上的圖片,則不會插入圖片,並且腳本根本無法正常工作。 我嘗試增加某些配置文件(例如“ php.ini”,“ conf”等)中的“最大”上載/導入/會話/查詢值,但我想我缺少正確的修復程序。

有人可以給我指示嗎?

我的源代碼:

HTML:

<form action="" method="POST" enctype="multipart/form-data">
   <input type="file" name="userfile[]" multiple/>
   <input type="submit" value="Submit"/>
 </form>

PHP:

if(!isset($_FILES['userfile']))
{
    echo '<p>Please select a file</p>';
}
else
{
    try    {
        upload();
        echo '<p>Thank you for submitting</p>';
    }
    catch(Exception $e)
    {
        echo '<h4>'.$e->getMessage().'</h4>';
    }
}


function upload(){

        foreach($_FILES['userfile']['tmp_name'] as $key => $tmp_name ){


            $imgfp = fopen($_FILES['userfile']['tmp_name'][$key], 'rb');


            $nameTemp = $_FILES['userfile']['name'][$key];

            $name = preg_replace( '/\.[a-z0-9]+$/i' , '' , $nameTemp );

            /*** connect to db ***/
            $dbh = new PDO("mysql:host=localhost;dbname=testYossi", 'root', 'password');

            /*** set the error mode ***/
            $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

            /*** our sql query ***/
            $stmt = $dbh->prepare("INSERT INTO pictures (picNmae , picData) VALUES (? ,?)");

            $stmt->bindParam(1, $name);
            $stmt->bindParam(2, $imgfp, PDO::PARAM_LOB);

            $stmt->execute();       
    }               
}

您是否檢查了php配置中的upload_max_filesizemax_file_uploads值? 使用phpinfo()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM