我想上传html中的文件,如下所示:
<tr><td><?php _e("Upload Trust Logo","emarksheet"); ?></td><td><label class="btn btn-danger" for="file-sel"><input id="file-sel" type="file" name="imaget" style="display:none;" size="25" />Browse to Upload Logo ....</label></td></tr>
<tr><td><?php _e("Upload Institute Logo","emarksheet"); ?></td><td><label class="btn btn-primary" for="file-sel2"><input id="file-sel2" type="file" name="image" style="display:none;" size="25" />Browse to Upload Logo ....</label></td></tr>
两个上传这些文件。我的php代码如下:
$path = plugin_dir_path(__FILE__);
$file = $_FILES['image'];
//print_r($_FILES);
$name1 = $file['name'];
$type = $file['type'];
$size = $file['size'];
$tmppath = $file['tmp_name'];
move_uploaded_file ($tmppath, $path.'logos/'.$name1);
//upload data end
//upload trust logo`
$file2 = $_FILES['imaget'];
//print_r($_FILES);
$name2 = $file2['name'];
$type2 = $file2['type'];
$size2 = $file2['size'];
$tmppath2 = $file2['tmp_name'];
move_uploaded_file ($tmppath2, $path.'logos/'.$name2);
当我上传文件时。上传带有 $name2
的文件名,但不上传名称为 $name1
的文件
请帮助为什么不上传
正如您发布的那样,"图像"图像有一个错误 4 代码。这意味着没有上传任何文件,如下所示:http://www.php.net/manual/en/features.file-upload.errors.php
为什么?
由于您以 $_FILES 为单位获取信息,因此您发布的数据总量不会大于 post_max_size php.ini 指令,因为在这种情况下,$_FILE 将完全为空。
然后,可能会超过php.ini upload_max_filesize,即单个文件的最大大小,或者将max_file_uploads设置为1,因为max_file_uploads是允许同时上传的最大文件数。
在 http://php.net/manual/en/ini.core.php 和 php.ini 文件中检查这些参数。
我在我的本地主机服务器中尝试了这个片段,并放置在 [www_root]/tests/uploads/test1.php 中(请注意,我只是在我们的案例中使用了相关部分):
<?php
if (empty($_FILES)) {
echo "<form enctype='multipart/form-data' method='POST' action='http://localhost/tests/uploads/test1.php'>";
echo '<input id="file-sel" type="file" name="imaget" size="25" />';
echo '<input id="file-sel2" type="file" name="image" size="25" />';
echo '<button type="submit">Submit</button>';
} else {
echo print_r($_FILES);
}
并且两个文件都正确上传。那么问题一定出在 PHP 配置上,而不是在实际的 PHP 代码上。
我在 php.ini 中的价值观:
- post_max_size=8M
- upload_max_filesize=2M
- max_file_uploads=20
这意味着我可以同时上传 20 个文件,但它们的总和不能超过 8M,单个文件也不能超过 2M。
编辑:修改php.ini文件后,必须重新启动服务器才能加载这些新值。
希望对您有所帮助。