1

我对 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

4

1 回答 1

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']);

那么它的舒尔,你使用相同的会话。我希望它的工作。

于 2012-07-01T19:40:16.797 回答