Pet*_*ton 20 html forms safari macos
已解决/注意:我已接受将“accept=”选项添加到 HTML 代码作为问题解决方案的答案。应该注意的是,虽然这确实可以作为一种解决方法,但根本原因可能是 Safari 错误 - 不应要求将其添加到您的 HTML 以使此功能正常工作。
原始问题描述和信息:
我的 Mac 今天早上收到更新,现在运行 macOS Mojave 10.14.6 (18G6042)。看起来 Safari 肯定已经收到更新作为其中的一部分,尽管 Apple 没有提供更新细节,只是通常的“您需要重新启动”,没有额外信息,然后等待 20 分钟。Safari 现在是版本 14.0.1 (14610.2.11.51.10)。
更新后,我发现我无法再通过 Safari 中的 HTML 表单提交文件。显示“选择文件”按钮,但单击它不会产生任何结果。我将在下面发布我的代码,但我也使用https://www.w3schools.com/tags/att_input_type_file.asp 上的 w3schools 示例验证了这一点(它现在也无法在 Safari 中工作),并且我的代码工作正常在同一台笔记本电脑上的 Chrome 和 Firefox 中。
有没有人有这方面的信息?现在是否需要额外的指令才能在 Safari 中工作?它是否由于某些安全问题而被阻止?这只是一个错误吗?
这是我的测试代码,以防它相关,尽管它或多或少与 w3schools 示例相同,但添加了一些 PHP 来显示文件信息。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional/EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="UTF-8">
<meta http-equiv="Content-type" content="text/html; charset=UTF-8">
<title>Upload File Test</title>
</head>
<body>
<br/>
<?php
if (isset($_POST["UploadFile"]))
{
if ($_FILES["myfile"]["error"] > 0)
{
echo "No file was selected.<br/>\n";
}
else
{
echo "Upload: " . $_FILES["myfile"]["name"] . "<br/>\n";
echo "Type: " . $_FILES["myfile"]["type"] . "<br/>\n";
echo "Size: " . ($_FILES["myfile"]["size"] / 1024) . " kB<br/>\n";
echo "Stored in: " . $_FILES["myfile"]["tmp_name"] . "<br/>\n";
}
}
?>
<FORM NAME="file_upload" METHOD="POST" ACTION="file-test.php" enctype="multipart/form-data" accept-charset="UTF-8">
<label for="file">Upload File:</label>
<input type="file" name="myfile" id="myfile" />
<INPUT type="Submit" name="UploadFile" value="Upload" />
</FORM>
<br/>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
更多信息:所以问题仍然存在,有时对话框现在打开,但有时没有。以前,对话框总是在您加载或保存文件的最后一个目录中打开,我只是将一堆页面保存为 PDF(通过打印)用于一些工作,现在当我再次转到选择文件时,它显示下面的对话框(不幸的是,屏幕截图没有捕获完整路径,但您明白了)。所以看起来这是 Safari 中的一个问题,但我仍然不确定究竟是什么或如何纠正它。另外,虽然对话框在我的本地测试页面上打开,但它不会为基于 Web 的页面(我的网站、w3schools 等)打开。
更多信息:Safari 只是再次默认到它有时会一直默认的“无法访问”目录,这是一个屏幕截图,以防附加信息进一步帮助任何人(可能只是 Apple 的人在修复我猜的错误)。 . 通常你不能从 Safari 浏览到这个文件夹,我猜这是这个 bug 的一部分 - Safari 试图默认到这个目录进行文件上传,当它无法跳转到上次使用的目录时原因。
小智 11
我昨天遇到了同样的问题。
研究它后,我发现它可以在其他地方工作,并通过将带有文件类型列表的接受属性添加到输入标记来修复它在我正在处理的站点上。(例如<input type="file" accept=".xls,.xlsx,.xlsb,.txt,.csv,.tsv"/>)
现在在 Mojave 10.14.6 上的 Safari 版本 14.0.1 (14610.2.11.51.10) 中工作正常
我确认这至少在 Mojave 上是 Safari 的问题。我在 Mojave 10.14.6 上有 Safari 14.0.1 (14610.2.11.51.10)(安全更新 2020-06 后是 18G6032 然后是 18G6042:没有变化)。似乎没有文件上传会起作用:它在我自己的网站上失败,非常简单的 html 几乎仅限于<input type="file" />,并且在两个标准 CMS(旧的 WordPress 和当前的 MODX)上也失败。根本没有文件选择窗口。我尝试允许任何东西(例如弹出窗口):没有变化。
OS X 的日志表明单击按钮时 Safari 被拒绝文件访问:
沙盒:Safari(4721) deny(1) iokit-open AppleAPFSUserClient 违规:deny(1) iokit-open AppleAPFSUserClient
对于那些维护网站的人来说,如果非技术用户必须提供文件,这很烦人:他们可能会得出结论,该网站已损坏,而实际上并没有。除了添加建议使用其他浏览器的警告之外,我没有其他解决方案。
| 归档时间: |
|
| 查看次数: |
6474 次 |
| 最近记录: |