它应该是图片的多重上传表格
我获取上传表单的HTML代码:
<form action="upload.php" method="post" id="uploadform" name="uploadform" enctype="multipart/form-data">
<label id="filelabel" for="fileselect">Choose the Pictures</label>
<input type="file" id="fileselect" class="fileuplaod" name="uploads[]" multiple />
<span class="text">Exist Album</span><br />
<select id="existAlbum" name="existAlbum" size="1">
<option value="noAlbum">SELECT ALBUM</option>
</select>
<span class="text">OR</span>
<span class="text">New Album</span><br />
<input id="newAlbum" name="newAlbum" type="text" maxlength="20" placeholder="ALBUM NAME"/>
<input type="submit">
</form>
表格链接到uploaded.php。但我得到了:
Notice: Undefined index: existAlbum in E:\xampp\htdocs\fotokurs\upload\upload.php on line 11
Notice: Undefined index: newAlbum in E:\xampp\htdocs\fotokurs\upload\upload.php on line 12
这是upload.php:
<?PHP
$allowedExtensions = array('png', 'jpg', 'jpeg');
$maxSize = 20971520;
$i = 0;
$first = 0;
$exist_album = $_POST['existAlbum'];
$new_album = $_POST['newAlbum'];
我的错在哪里?我找不到......
修改 在我的代码中添加以下内容:
if( isset( $_POST['existAlbum'] ) or isset( $_POST['newAlbum'] ) ){
$exist_album = $_POST['existAlbum'];
$new_album = $_POST['newAlbum'];
}else{
echo 'no album <br />';
}
print_r($_POST);
新产品:
no album
Array ( )
Notice: Undefined variable: new_album in E:\xampp\htdocs\fotokurs\upload\upload.php on line 20
Notice: Undefined variable: exist_album in E:\xampp\htdocs\fotokurs\upload\upload.php on line 21
Notice: Undefined variable: new_album in E:\xampp\htdocs\fotokurs\upload\upload.php on line 22
Notice: Undefined variable: exist_album in E:\xampp\htdocs\fotokurs\upload\upload.php on line 23
答案 0 :(得分:2)
您的一个问题是existAlbum
没有与之关联的实际值。
您有<option>Select Album</option>
没有与option元素关联的值。如果没有关联的值,则select元素不会发布到服务器。你应该改为:
<option value="">Select Album</option>
修改强>
由于用户只需要提供一个或另一个,您应该使用以下内容来设置变量:
$existsAlbum = (isset($_POST['existAlbum']) && !empty($_POST['existAlbum'])) ? $_POST['existAlbum'] : 'defaultValue';
$newAlbum = (isset($_POST['newAlbum']) && !empty($_POST['newAlbum'])) ? $_POST['newAlbum'] : 'defaultValue';
需要注意的一点是Internet Explorer does not support the placeholder attribute。
编辑2
这是我的快速测试页面,它运行test.php:
<form action="upload.php" method="post" id="uploadform" name="uploadform" enctype="multipart/form-data">
<label id="filelabel" for="fileselect">Choose the Pictures</label>
<input type="file" id="fileselect" class="fileuplaod" name="uploads[]" multiple />
<span class="text">Exist Album</span><br />
<select id="existAlbum" name="existAlbum" size="1">
<option value="noAlbum">SELECT ALBUM</option>
</select>
<span class="text">OR</span>
<span class="text">New Album</span><br />
<input id="newAlbum" name="newAlbum" type="text" maxlength="20" placeholder="ALBUM NAME"/>
<input type="submit" value="Submit">
</form>
upload.php的
<pre>
<?php print_r($_POST); ?>
<?php print_r($_FILES); ?>
</pre>
结果
Array
(
[existAlbum] => noAlbum
[newAlbum] =>
)
Array
(
[uploads] => Array
(
//Contents here
)
)
答案 1 :(得分:0)
如果未选择select,则根本不会得到它(您希望它为空,这不是真的)。你必须先检查
$exist_album = isset($_POST['existAlbum']) ? $_POST['existAlbum'] : '<DEFAULT VALUE>';
和复选框相同。
newAlbum
事情应该有效,因为文本输入始终存在。参见
print_r($_POST);
看看那里真的是什么,在我的情况下是 - 在“空”提交我得到:
Array
(
[existAlbum] => SELECT ALBUM
[newAlbum] =>
)
顺便说一句:你应该使用<?php
而不是<?PHP
。
答案 2 :(得分:0)
尝试设置值existsAlbum,因为如果没有选择任何值,它将不会返回任何值。你可以给existsAlbum选择器一个默认值='1'或者其他东西:
if isset($_POST['existAlbum']){
echo 'yes';
}
else{
echo 'no';
}
我认为规则enctype =“multipart / form-data”有问题。尝试删除它,它应该由您的浏览器自动设置。
答案 3 :(得分:0)
您没有选择选择相册的值,即使您不打算使用该选项给它一个值,例如0,这样它将始终在POST变量中设置。
<option value="0">SELECT ALBUM</option>
<option value="some album">Some Album</option>
...
答案 4 :(得分:0)
使用print_r($_POST);
打印$ _POST数组确保表单操作正确
<form action="upload.php" method="post" id="uploadform" name="uploadform" enctype="multipart/form-data">