php - 在php中创建临时文件名

标签 php jquery

为了在 PHP 中保存文档/图像,我使用 move_uploaded_file($tmp, "location")

我在文件更改时获取文档/图像的值,因此我获取了文件名,但无法创建 tmp_name,因为我正在获取 名称的方式如下:

HTML:

<form action="" method="post" enctype="multipart/form-data">
    <input type="file" name="file" id="upload" onChange="change(this.value)" />
    <input type="submit" name="chk" value="Submit" />
    <div id="div"></div>
</form>

JavaScript:

<script src="js/jquery1.js"></script>
<script>
function change(val){
    $.ajax({
        url:"filecheck.php?id=" + val,
        success:function(res){
            alert(res);
        }
    });
}

PHP: filecheck.php

mysql_connect("localhost","root","");
mysql_select_db("newdatabase");

if(isset($_GET['id']))
{
    $name=$_GET['id'];
    $tmp=$_GET['id']['tmp_name']; //here i need temp file name
    move_uploaded_file($tmp, "C:/xampp/htdocs/jerome/project/newimage/".$name); 
    echo $name;
}

如果我通过$_FILES['file']['name']获取文件名,则意味着我可以获取$_FILES['file']['tmp_name'],但我无法通过这种方式。您能给我一个关于如何获取$_FILES['file']['tmp_name']的建议吗?

最佳答案

您的问题是您尝试从 $_GET 超全局而不是保存该文件的 $_FILES 超全局访问该文件。

使用以下代码进行简单检查即可显示文件数据:

print_r($_FILES);

您的 ajax 也存在问题。

function change(val){
    $.ajax({
        url:"filecheck.php?id=" + val,
        type: "post",
        data: $('#yourformid').serialize()
        success:function(res){
            alert(res);
        }
    });
}

我可以看到您正在尝试通过 ajax 进行即时上传。你现在的做法很糟糕。

您应该查看以下教程以了解应该如何完成:

否则你只需这样检查:

if(!empty($_FILES)) {

    $name = $_FILES['file']['name'];
    $tmp = $_FILES['file']['tmp_name'];
}
<小时/>

注意

看看code-jaffs comment这验证了我上面的观点,即您的文件不会按照您当前的方式上传。

关于php - 在php中创建临时文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24881624/

相关文章:

php - 使用 currancy 格式的字段将 CSV 导入 MYSQL

javascript - 如何在 plupload 中找到新文件名

javascript - 如何找到文本以特定字符串开头的 li?

jQuery 多个 if else 语句卡在第二个条件

php - 将特定表格单元格值设置为文本框 (jQuery/PHP)

java - POST 请求在 cURL 中成功,但在 Java 中失败

php - 单选按钮值未传递给 php 函数

php - 使用按钮从带有 Angular 的文本输入中添加数据

javascript - Ajax 仅在第一次运行

javascript - 为什么 jquery video.trigger ("play") 触发两次?