[英]Undefined index -> PHP Upload not working
PHP上传:
注意:未定义索引:文件位于
在线: $count = count($_FILES['file']['name']);
运行几乎所有我发现此错误的代码...仍然没有任何结果
PHP代码:
<?php
$count = 0;
if(isset($_POST['uploadFinish'])) {
$bcode = $_POST['code'];
$newpath = "upload/".$bcode."/";
if (!file_exists($newpath)) {
mkdir($newpath, 0755, true);
}
$count = count($_FILES['file']['name']);
if($count < 1) {
$message = "At least 1 file required"; $count='';
} else {
move_uploaded_file($_FILES['file']['tmp_name'], $newpath.'/File-'.$bcode);
}
}
?>
HTML / JS:
<button class="btn btn-primary btntrg123" id="uploadBtn" style="background: #008489; border-color: #008489">Upload file</button>
<form style="display: none!important;" id="uploadConf" method="post" enctype="multipart/form-data">
<div style='height: 0px;width:0px; overflow:hidden;'>
<input type="file" id="file" name="file[]" multiple="multiple" onclick="getFile()" class="btn btn-primary inptri123">
</div>
<input type="hidden" name="code" value="<?php echo $code; ?>">
<input name="uploadFinish" value="1" type="hidden">
</form>
<script type="text/javascript">
$(".btntrg123").click(function(event){
event.preventDefault();
$(".inptri123").trigger('click');
});
function getFile(){
document.getElementById("file").onchange = function () {
var file = this.value;
console.log(file);
var form = document.getElementById('uploadConf');
form.submit();
};
}
</script>
这两个代码是相同的php文件。 从其他文件运行php,结果相同。
Console.log给了我文件,但没有上载到服务器。 文件夹已创建。
我想您想检查上传的文件数量。
HTML
<button class="btn btn-primary btntrg123" id="uploadBtn" style="background: #008489; border-color: #008489">Upload file</button>
<form action="upload.php" style="display: none!important;" id="uploadConf" method="post" enctype="multipart/form-data">
<div style='height: 0px;width:0px; overflow:hidden;'>
<input type="file" id="file" name="file[]" multiple="multiple" onclick="getFile()" class="btn btn-primary inptri123">
</div>
<input type="hidden" name="code" value="0">
<input name="uploadFinish" value="1" type="hidden">
</form>
<script type="text/javascript">
$(".btntrg123").click(function(event){
event.preventDefault();
$(".inptri123").trigger('click');
});
function getFile(){
document.getElementById("file").onchange = function () {
var file = this.value;
console.log(file);
var form = document.getElementById('uploadConf');
form.submit();
};
}
</script>
尝试这个
<?php
$count = 0;
if(isset($_POST['uploadFinish'])) {
$bcode = $_POST['code'];
$newpath = "upload/".$bcode."/";
echo $newpath;
if (!file_exists($newpath)) {
mkdir($newpath, 0755, true);
}
$count = count($_FILES['file']['name']);
if($count < 1) {
$message = "At least 1 file required"; $count='';
} else {
$total = count($_FILES['file']['name']);
for( $i=0 ; $i < $total ; $i++ ) {
move_uploaded_file($_FILES['file']['tmp_name'][$i], $newpath.'/File-'.$bcode.$_FILES['file']['name'][$i]);
}
}
}
?>
动作=“ upload.php”
多文件上传时,您可以使用
$name=$_FILES['file']['name'][$index];
$tmp=$_FILES['file']['tmp_name'][$index];
您的代码应如下
$total = count($_FILES['file']['name']);
for( $i=0 ; $i < $total ; $i++ ) {
$tmp= $_FILES['file']['tmp_name'][$i];
if (!(empty($tmp )){
$path= "/upload/" . $_FILES['file']['name'][$i];
if(move_uploaded_file($tmp, $path)) {
echo $_FILES['file']['name'][$i]. ' uploaded';
}
}
}
看来您只是错过了表单action
。
应该是这样的:
<form style="display: none!important;" id="uploadConf" method="post" enctype="multipart/form-data" action="/your/api/call">
或者,您可以使用javascript
附加表单事件:
function processForm(e) {
if (e.preventDefault) e.preventDefault();
/* do what you want with the form */
// You must return false to prevent the default form behavior
return false;
}
var form = document.getElementById('uploadConf');
if (form.attachEvent) {
form.attachEvent("submit", processForm);
} else {
form.addEventListener("submit", processForm);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.