現在、私はPHPウェブサイトを開発しており、データベースにファイルを保存する必要があります。 は、私はこのエラーを取得するまで、ファイルのアップロードが正常に動作して ...などPDF、PPTX、などのファイルを保存するためにLONGBLOBを使用しています: Fatal error: Allowed memory size of 134217728 bytes exhausted
私は致命的なエラーが発生しました:ファイルをアップロードするときに134217728バイトのメモリサイズが使い果たされました
ここに私の関数である。
public function uploadFile() {
// We upload only pdf for now
if (isset($_FILES['fichier']['name']) && $_FILES['fichier']['type']=="application/pdf"){
$tmp_name = $_FILES['fichier']['tmp_name'];
// Avoid problem with space
$nom = str_replace(' ','_',$_FILES['fichier']['name']);
$taille = $_FILES['fichier']['size'];
$type = $_FILES['fichier']['type'];
$fp = fopen($tmp_name, 'rb');
$content = fread($fp, filesize($tmp_name));
$statement = $this->db->prepare("INSERT INTO document(nomfichier,fichier,typefichier,taillefichier) VALUES (?,?,?,?)");
$statement->bindParam(1, $nom);
$statement->bindParam(2, $content, PDO::PARAM_LOB, $taille);
$statement->bindParam(3, $type);
$statement->bindParam(4, $taille);
$statement->execute();
$statement->closeCursor();
// Redirect
header('Location: documentation');
die('redirect');
編集:問題は、再生時にlongblobの代わりにblobを選択したデータベースに由来します。
ストリームとしてデータをマッピングするためにPDOを伝えますメモリの上限をチェックし、最大値を確認します。あなたのアップロードのファイルサイズを許可しました - http://stackoverflow.com/q/2184513/80836 – Andreas
prod envのphp.iniにアクセスできません。どうすればいいですか? – Kryze