$fileCount = count($_FILES);
for ($i = 0; $i < $fileCount; $i++) {
$fp = fopen($_FILES["file_".$i]['tmp_name'], 'rb');
$stmt4 = $dbh - > prepare("INSERT INTO files_tbl (pin,remarks,fileblob,file_type,nameoffile,filesize) VALUES (?,?,?,?,?,?)");
$stmt4 - > bindValue(1, $pin, PDO::PARAM_STR);
$stmt4 - > bindValue(2, $remarks, PDO::PARAM_STR);
$stmt4 - > bindParam(3, $fp, PDO::PARAM_LOB);
$stmt4 - > bindParam(4, $_FILES["file_".$i]['type'], PDO::PARAM_STR);
$stmt4 - > bindValue(5, $_FILES["file_".$i]['name'], PDO::PARAM_STR);
$stmt4 - > bindValue(6, $_FILES["file_".$i]['size'], PDO::PARAM_STR);
$stmt4 - > execute();
}
Вот как я вставляю файл как blob в php. Он сохраняет файл, но он не сохраняется должным образом. Когда я говорю, что это не экономит должным образом, я имею в виду, что на этом пути что-то не так. Когда я сравниваю сохранение файла с помощью моего проекта и вручную добавляя файл в XAMPP, есть разница в файловом блоке, например, я сохраняю файл вручную в xampp fileblob [BLOB - 488.9 KiB]
, когда я использую проект, становится [BLOB - 479.2 KiB]
. Я думаю, что это причина, когда я пытаюсь показать файл из базы данных, он показывает пустую страницу (когда файл, который я показываю, является файлом, который я вставляю, используя проект), но если файл, который я пытаюсь показать, - это файл, который я вставляю вручную в xampp он показывает файл.
Что может быть неправильным в моей вставке? Почему я не сохраняю правильный blob
UPDATE
<input type="file" id="filecontent" name="filecontent" multiple="">
Ajax
var file = $('#filecontent')[0].files;
for (var i = 0; i < file.length; i++) {
formData.append("file_" + i, file[i]);
//more data are passed to formData
//formData.append("file", file[i]);
console.log(file[i]);
}
$.ajax({
url: '../include/AddNew.php',
type: 'POST',
dataType: "json",
data: formData,
processData: false, // tell jQuery not to process the data
contentType: false, // tell jQuery not to set contentType
success: function(data) {
console.log(data);
alert(data.message);
//window.location.reload(true);
},
error: function(data) {
//alert("Error!"); // Optional
}
});
UPDATE
когда я попытался поставить print_r($_FILES);
перед строкой for ($i = 0; $i < $fileCount; $i++) {
, вывод
Array
(
[file_0] => Array
(
[name] => whomovedmycheese - Copy.pdf
[type] => application/pdf
[tmp_name] => C:\Users\HogRider\xampp\tmp\phpE775.tmp
[error] => 0
[size] => 500624
)
[file_1] => Array
(
[name] => whomovedmycheese.pdf
[type] => application/pdf
[tmp_name] => C:\Users\HogRider\xampp\tmp\phpE786.tmp
[error] => 0
[size] => 500624
)
)
UPDATE