次の php ファイルを使用してデータをローカル ストレージにアップロードし、パスを db に保存します。ファイルがアップロードされていますが、ダウンロードしようとすると、ファイルのコンテンツを取得できません。空白のページしか表示されません。より大きなサイズのデータがアップロードされる可能性があるため、File_get content メソッドを使用できません。そのために何ができますか?
ここに私のアップロードコード Upload.php があります
$id=$_POST['id'];
$fileTypes = array('txt','doc','docx','ppt','pptx','pdf');
$fileParts = pathinfo($_FILES['uploaded_file']['name']);
if(in_array($fileParts['extension'],$fileTypes))
{
$filename = $_FILES["uploaded_file"]["name"];
$location = "D:\\Uploads/";
$path = $location . basename( $_FILES['uploaded_file']['name']);
move_uploaded_file( $_FILES["uploaded_file"]["tmp_name"], $location . $_FILES['uploaded_file']['name']);
$result = $mysqli->multi_query("call sp_upload_file('".$id."','" . $filename . "','".$path."')");
if ($result)
{
do {
if ($temp_resource = $mysqli->use_result())
{
while ($row = $temp_resource->fetch_array(MYSQLI_ASSOC)) {
array_push($rows, $row);
}
$temp_resource->free_result();
}
} while ($mysqli->next_result());
}
echo "Successfully Uploaded";
}
else
{
echo " Invalid File Type";
}
ストアド プロシージャ sp_upload_file は次のとおりです。
DELIMITER $$
USE `test`$$
DROP PROCEDURE IF EXISTS `sp_upload_file`$$
CREATE PROCEDURE `sp_upload_file`(IN id INT,IN filename VARCHAR(200),IN path VARCHAR(200))
BEGIN
IF EXISTS(SELECT `Training_Id`, `Material_Name`,Material_Path FROM `training_material` WHERE `Training_Id` = id AND `Material_Name` = filename AND `Material_Path` = path )
THEN
UPDATE
`training_material`
SET
Training_Id = id,
Material_Name = filename,
Material_Path = path,
Modified_Date = NOW()
WHERE
`Training_Id` = id AND
`Material_Name` = filename AND
`Material_Path` = path ;
ELSE
INSERT INTO
`training_material`
(`Training_Id`,
`Material_Name`,
`Material_Path`,
`Created_Date`,
`Modified_Date`)
VALUES
(id,
filename,
path,
NOW()
,NOW());
END IF;
END$$
DELIMITER ;
以下は、ファイルをダウンロードするためのコードです
if(isset($_GET['id']))
{
$id=$_GET['id'];
$mid=$_GET['mid'];
$query = "call sp_download_file('".$mid."')";
$result = mysql_query($query) or die('Error, query failed');
list($name) = mysql_fetch_array($result);
header("Content-Disposition: attachment; filename=$name");
ob_clean();
flush();
exit;
}
以下は、データをダウンロードするための sp です。
DELIMITER $$
USE `test`$$
DROP PROCEDURE IF EXISTS `sp_download_file`$$
CREATE DEFINER=`root`@`%` PROCEDURE `sp_download_file`(IN id INT)
BEGIN
SELECT Material_Name FROM training_material WHERE `Training_Material_Id` = id;
END$$
DELIMITER ;
これで助けてください.download.phpファイルを変更する必要があることは知っています.しかし、どのような変更を加える必要があるかわかりません.