私のPHP Webサイトにuploadify 3.1を統合しました。
問題: 私のアップロード スクリプトは、小さなビデオに対して正常に動作します。ビデオ ファイルはターゲット フォルダにアップロードされ、データベースにも保存されます。
1) 50 MB 未満のビデオ ファイルの場合 - ビデオのアップロードは問題ありませんが、アップロードが 100% 完了した後、ビデオはターゲット フォルダにアップロードされ、情報はデータベースにも保存されますが、302 エラーが発生します。
2) 50 MB を超えるビデオ ファイルの場合 - ビデオのアップロード ステータスは、ビデオが 100% アップロードされていることを示しています。進行状況バーで 100% のアップロード ステータスを取得した後、ビデオはターゲット フォルダーにアップロードされず、データベースにも保存されません。
これらの問題の解決にご協力ください。できるだけ多くの情報を提供しようとしました。
以下はIISサーバーに設定されているので問題ありません。
php 5.2.7
mysql
max_execution_time = 10800 seconds
max_input_time = 10800 seconds
memory_limit = 512M
post_max_size = 512M
upload_max_filesize = 512M
Fast CGI Timeout = 3600 seconds
以下はウェブサイトの構造です
admin (folder)
video/video_add.php (upload page location inside admin folder)
video/video_add_p.php (upload programming where file is being uploaded and stored into database)
data (folder)
video (video files will be stored inside this folder)
以下のファイルは video_add.php ページに含まれています
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
<script src="jquery.uploadify-3.1.min.js" type="text/javascript"></script>
以下は、video_add.php ページのアップロード設定です。
<script type="text/javascript">
<?php $timestamp = time();?>
$(function() {
$('#file_upload').uploadify({
'auto' : true,
'buttonText' : 'SELECT AND UPLOAD VIDEO',
'checkExisting' : './check-exists.php',
'fileSizeLimit' : '200MB',
'fileTypeDesc' : 'Video Files',
'fileTypeExts' : '*.flv; *.mp4; *.mpg; *.mpeg; *.wmv; *.FLV; *.MP4; *.MPG; *.MPEG; *.WMV;',
'formData' : {
'timestamp' : '<?php echo $timestamp;?>',
'token' : '<?php echo md5('unique_salt' . $timestamp);?>',
'pkid' : '<?php echo $int_pkid;?>',
},
'method' : 'post',
'multi' : false,
'progressData' : 'speed',
'removeCompleted' : false,
'swf' : 'uploadify.swf',
'uploader' : './video_add_p.php',
'uploadLimit' : 1,
'width' : 250,
'onSelect' : function() {
if(trim(txt_title.value)=="")
{
alert("Please enter video name.");
txt_title.focus();
$('#file_upload').uploadify('cancel');
return false;
}
},
'onSelectError' : function() { alert('The file returned an error and was not added to the queue.');},
'onUploadStart' : function() { $("#file_upload").uploadify('settings', 'formData', {'txt_title': $('#txt_title').val()}); },
'onUploadComplete' : function() { location.reload(true); },
});
});
以下は、ビデオファイルを選択するための入力ボタンです
<input type="text" id="txt_title" name="txt_title" size="90">
<input type="file" id="file_upload" name="file_upload" placeholder="Select your file to upload">
以下は、ビデオをアップロードするための video_add_p.php プログラミングです。
$targetFolder = "../../data/video/"; // Relative to the root
$verifyToken = md5('unique_salt' . $_POST['timestamp']);
if (!empty($_FILES) && $_POST['token'] == $verifyToken) {
$tempFile = $_FILES['Filedata']['tmp_name'];
$targetPath = $targetFolder;
$targetFileExt=GetExtension($_FILES['Filedata']['name']);
$targetFileName = "video_".$int_pkid."_".date("ymdhis").".".$targetFileExt;;
$targetFile = rtrim($targetPath,'/') . '/' . $targetFileName;
// Validate the file type
$fileTypes = array('flv','mp4','mpg','mpeg','wmv','FLV','MP4','MPG','MPEG','WMV');
// File extensions
$fileParts = pathinfo($_FILES['Filedata']['name']);
if (in_array($fileParts['extension'],$fileTypes)) {
set_time_limit(0);
move_uploaded_file($tempFile,$targetFile);
echo '1';
}
else { echo 'Invalid file type.'; }
}
-- Here script is written to store uploaded video file data into mysql database. --