セッション内で複数の画像を一度にアップロードしようとしています。私の場合、ユーザーは1つの「位置」について前に述べた正確な量の画像をアップロードし、異なる量の異なる画像を有する別の「位置」のための動作を繰り返さなければならない。 Unforunatelyアップロードが動作しないと私は理由を知らない。 $_FILES
の代わりに$_POST
を使用するか、またはforeach
の方法が正しくないですか?ここでは、コードは次のようになります。セッション内で複数のファイルをアップロードするにはどうすればよいですか?
HTML:
<?php
session_start();
include('php/uploadspec.php');
if(!isset($_SESSION['face'][$_SESSION['counter']])){
header("Location: cuberender.php");
}
$speccount = 1;
?>
<div class="counter">
<form method="post">
<div class="form-group">
<p>Please Choose all <?php echo $_SESSION['quantity'] ?> photos for <?php echo $_SESSION['face'][$_SESSION['counter']] ?></p>
</div>
<div class="form-group">
<input type="file" name="images[]" accept="image/*" multiple />
</div>
<div class="form-group">
<input type="submit" name="Submit" value="Submit!" />
</div>
</form>
<?php
if (isset($_POST['Submit'])) {
$imgamount=count($_POST['images']);
if ($imgamount==$_SESSION['quantity']){
uploadspec(session_id(), $speccount);
$_SESSION['counter']++;
header("Location: posteditor.php");
}
}
?>
PHP:事前に
function uploadspec($id, $speccount){
foreach($_FILES["images"]["tmp_name"] as $image) {
$target_file = $id . '/' .$_SESSION['face'][$_SESSION['counter']]. '/specimage'.$speccount;
$speccount++;
move_uploaded_file($image, $target_file);
}
}
ありがとう!
php.iniファイル内の最大アップロードサイズとポスト最大サイズを更新することで、チェック*「私が代わりに$ _FILESの$ _POSTを使用すべきか、foreachの方法が修正されていない?」* - '$ _FILES'また、マニュアルの中にhttp://php.net/manual/en/features.file-upload.post-method.phpのベースとなる例があります –
あなたが使っているものが失敗した場合は、エラー報告http://php.net/manual/en/function.error-reporting.php –
'if(!isset($ _ SESSION ['face'] [$ _ SESSION ['counter']]))'可能性がありますあなたがここで失敗した。 –