我试图创建一个表单来上传文件,但是当我上传文件时,没有出现在特定的路由中。 我使用 chmod 向上传文件的文件夹授予了权限。请帮忙。
JAVASCRIPT
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script src="jquery-1.9.1.min.js"></script>
<script src="jquery-ui.js"></script>
</head>
<body>
<div id="subir">
<input id="archivos" type="file" name="archivos[]" multiple="multiple" onchange="seleccionado();" />
</div>
<div id="cargados">
</div>
</body>
<script>
function seleccionado(){
var archivos = document.getElementById("archivos");
var archivo = archivos.files;
var data = new FormData();
for(i=0; i<archivo.length; i++){
data.append('archivo'+i,archivo[i]);
}
$.ajax({
url:'subir.php',
type:'POST',
contentType:false,
data:data,
processData:false,
cache:false
}).done(function(msg){
$("#cargados").append(msg);
});
}
</script>
.PHP
<?php
$ruta='/var/www/imgSube/';
foreach ($_FILES as $key) {
if($key['error'] == UPLOAD_ERR_OK ){
$nombre = $key['name'];
$temporal = $key['tmp_name'];
$tamano= ($key['size'] / 1000)."Kb";
move_uploaded_file($temporal, $ruta . $nombre);
echo "
<div id='subido'>
<h12><strong>Nombre del archivo: $nombre</strong></h2><br />
<h12><strong>Tamaño del archivo: $tamano</strong></h2><br />
<hr>
</div>
";
}else{
echo $key['error'];
}
}
?>
使用 FF 24.0 进行测试
您的代码有效并已签出。我在自己的机器上测试了它,问题可能是您的路径设置方式。
而不是像$ruta='/var/www/imgSube/';
那样使用绝对路径
尝试使用相对路径,这会影响从服务器根目录运行脚本时$ruta='imgSube/';
,这就是我所做的。
如果从子文件夹内运行脚本,则路径将如下所示:
$ruta='../../imgSube/';
还要确保您的文件夹确实被调用imgSube
,而不是使用小写imgsube
s
在Linux盒子上,这将有所作为。
为了记录,我使用了jquery-1.10.2.js
但我怀疑这会有所作为。
注意/编辑:这不适用于IE 7