Chrome浏览器中的move_uploaded_file函数存在问题。
它在IE中完美无瑕。这是上传脚本(upload.php):
<?php
session_start();
include "./global.php";
$res = mysql_query("SELECT * FROM users WHERE id='".$_SESSION['uid']."'");
$row = mysql_fetch_assoc($res);
$userid = $row['id'];
$targetFolder = "/var/www/picturebox/albums/$userid/";
$tempFile = $_FILES['Filedata']['tmp_name'];
var_dump($targetFolder.$userid."_");
move_uploaded_file($tempFile,$targetFolder.$_FILES['Filedata']['name']);
?>
HTML:
<input type="file" name="file_upload" id="file_upload" />
读取HTML的函数:
$(function() {
$('#file_upload').upload({
'uploader' : 'upload.php'
});
});
知道为什么它在Chrome中不起作用?在Chrome中,它将文件移动到“相册”,在IE中,它将文件移动到相册/用户ID
答案 0 :(得分:0)
问题是我上周遇到了这个问题,这是一个新脚本,你通过ajx调用它,然后你得到一个新会话或一个错误的会话。尝试使用php ajax请求发送session_id并在另一侧设置会话。
您可以通过参数发送session_id。
$(function() {
$('#file_upload').upload({
'uploader' : 'upload.php?sid=<?php echo session_id(); ?>'
});
});
您必须将实际会话ID写入脚本。您可以在脚本中设置一个javascript变量,然后在javascript中使用,这是第二个可能性。
PHP脚本中的:
session_id($_GET['sid']);
然后你会使用同一个会话。我希望它的运作。