gpt4 book ai didi

php - 上传前检查文件属性

转载 作者:行者123 更新时间:2023-12-01 08:28:29 25 4
gpt4 key购买 nike

我正在练习 PHP 和 AJAX,但遇到一些问题!

在选择要上传的图像后,我尝试从 jQuery 警报中获取文件名、类型、大小,但我不断收到空字符串。

<form action="upload_file.php" method="post" enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="my_file" />
<input type="submit" name="submit" value="Submit" />
</form>

此表单包含一个 JS 文件,该文件具有一个 ajax 脚本,该脚本向 php 页面请求已发布文件的文件名,但它不起作用。在尝试获取此数据之前我需要上传文件吗?

JS文件:

$("input").change (function () {
$.post("preview_uploader.php", { action:"get_size" }, function (data) {
alert (data);
});
});

PHP 文件preview_uploader.php:

<?php
if ($_POST["action"] == "get_test") print "text string test works!";
if ($_POST["action"] == "get_name") print $_FILES["my_file"]["name"];
if ($_POST["action"] == "get_size") print $_FILES["my_file"]["size"];
if ($_POST["action"] == "get_type") print $_FILES["my_file"]["type"];
?>

如果我使用 php 页面使用 action:"get_test" 进行测试,它会起作用,但它不适用于 $_FILES["my_file"]["name"]$_FILES["my_file"]["type"] 等...

有人可以帮我找出错误所在吗?

谢谢!

最佳答案

您的 JS 脚本正在向服务器发送单独的请求,因此您的 PHP 不知道该文件,并且 $_FILES["my_file"] 不是有效的索引。

不需要去服务器获取文件名,只需使用这个即可获取文件名:

$("input[type=file]").val();

我相信它也会带回路径,因此您需要删除路径才能获取文件名。

如果您想获取所有其他详细信息(文件大小等),您需要先上传文件(这会破坏您想要做的事情)或使用 Flash + JavaScript 组合,如以下解决方案:

关于php - 上传前检查文件属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1734996/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com