问题标签 [enctype]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
17756 浏览

php - $_POST 变量不适用于 $_FILES 和 multipart/form-data

问题:每当我将enctypeHTML 表单上的更改为 时multipart/form-data$_POST变量不会填充到我的 php 脚本中。用户在填写表格的同时上传文件,文件上传到服务器,但$_POST变量不填充。

代码:

我收集数据文本/图片的 HTML 表单。

索引.php

下面是我的 php 脚本,它尝试更新我的 MySQL 数据库,以及在我的 Ubuntu 服务器上上传我的文件。

上传.php

我试过的: 这是第一次这样做,所以我在这里有点自由造型,因为我似乎无法让它发挥作用。

  • 更改enctypeapplication/x-www-form-urlencoded. upload.php文件中没有出现$_POSTor$_FILE数据。
  • application/x-www-form-urlencoded彻底删除。当我这样做时,我的$_POST变量工作,但我的文件没有上传。
  • 检查php.inipost_max_size. 在搜索互联网时,我遇到了几个关于类似问题的 StackOverflow 主题。根据我收集的信息,如果尝试上传的文件超过 中的值post_max_size,则$_POST变量将不会通过。我的php.ini文件中的值为post_max_size“8M”,上传的测试文件图片为 103 KiB。

如何让$_POST数据工作,以及从同一个表单上传文件?

0 投票
1 回答
889 浏览

forms - Track submit event of form with encType=multipart/form-data

I noticed that the function assigned in the action tag is being evaluated every time the form changes. I want to do something like this to capture form submissions:

but it appears that the trackFormSubmission() is being evaluated on form change as well.

I'm using React.js if that's helpful.

0 投票
3 回答
2871 浏览

asp.net-mvc - 多个属性 Html.BeginForm MVC id 和 enctype 作为文件上传的一部分

作为文件上传 (ASP.NET MVC3) 的一部分,将 id 和 enctype 属性添加到 HTML.BeginForm 将 HttpPostedFileBase 返回为 null

模型:

ProfileForm.cshtml

控制器


如果我删除如下@id = "ProfileForm"属性,我将获得 HttpPostedFileBase (ImageUpload) 值。

我需要同时传递 id 和 enctype - 谁能告诉我我做错了什么或者有更好的方法吗?

0 投票
3 回答
1883 浏览

html - 以多部分形式提交空文本字段作为空字符串,而不是 null

这发生在我的 Rails 应用程序中,但我不确定这是否是 Rails 的问题,或者我是否误解了多部分表单应该如何工作。

这是(类似于)我的表格:

User#name有一个存在验证。如果我访问users/1/edit,清空“名称”文本字段的值,然后单击提交,由于存在验证失败,没有任何更新。到现在为止还挺好。

但是现在我已经avatar向我的用户添加了一个属性(使用 Paperclip gem 进行文件存储),所以我相应地更新了表单:

现在,如果我去编辑用户并为 提交一个空白值name,验证不会失败。User#name保持它以前的值,但更新似乎仍然成功(即我没有收到有关失败验证的错误消息并且updated_at数据库中的时间戳得到更新。)

经过仔细检查,似乎当我file_field在表单中包含 a 时,它会在提交空白文本字段时改变表单的行为(可能是由于form_for现在输出带有 的表单enctype=-"multipart/form-data")。

file_field 存在时,提交空白name会将这些参数发送到服务器:

{ "id" => 1, "user" => { "name: "" }

这会导致类似于User.find(1).update_attributes(name: "")控制器中的内容,当然无法更新,因为 Rails 看到我们正在尝试将“名称”更新为空白字符串并且验证失败。

当它存在时,它会被提交:

{ "id" => 1, "user" => { }(加上关于头像文件的额外信息)

“名称”键根本不存在,因此控制器运行User.find(1).update_attributes()当然会通过,因为没有任何更新可能导致验证失败。

这是一个错误,还是一个功能?为什么将 enctype 更改为 multipart(假设这是问题的根源)会改变空白文本字段的行为方式?(我已经在 Chrome 和 FF 中对此进行了测试,fwiw。)如果这确实是预期的行为,我如何确保正确提交空白文本字段而不必在每个文本字段周围添加一堆乏味的样板?

(如果重要的话,我正在使用:Ruby 2.3.0、Rails 5.0.0.beta3、Paperclip 5.0.0.beta1,并且我已经在 Chrome 49 和 Firefox 45 中进行了测试)

0 投票
3 回答
1095 浏览

php - 为什么 Enctype="Multipart/formdata" 在这里不起作用

这是我的代码,Enctype="multipart/form-data"包含在内时不起作用 这是不起作用的代码

但是当我删除Enctype="multipart/form-data"它时它工作正常,但我知道带有文件处理的表单需要 Enctype。我应该怎么办 ?

0 投票
1 回答
165 浏览

linux - Enctype="multipart/form-data" 在 linux 环境中不起作用?

我有一个 web 应用程序,现在我们想将它从 windows 移动到 linux 环境。这里的问题是,如果我在表单标签中使用 enctype="multipart/form-data" 则发布请求失败。出于测试目的,我删除了 enctype=来自表单标签的“multipart/form-data”并在linux环境中运行。现在发布请求成功,但据我所知上传文件我们应该在表单标签中使用enctype =“multipart/form-data”。如何解决这个问题?请帮助我,提前感谢所有帮助。

0 投票
0 回答
825 浏览

spring - CommandButton 不会触发动作包括 enctype="multipart/form-data"

我已经发布了一个关于几天前的问题。p:fileupload在深入研究这个问题后,我意识到我的主要问题似乎来自不同的起源,因此我提出了一个新问题。

我正在为移动设备开发一个网络应用程序(JSF2.2),用户可以在其中多次上传文件。我想使用 Primefaces 的p:fileupload组件来完成这项似乎不起作用的工作。我发现问题似乎enctype="multipart/form-data"<h:form>. 每当我的表单中有此属性时,commandButton 都不会调用其action=""属性中指定的 bean 方法(使用时也不会actionListener="")。当我删除该enctype="multipart/form-data"属性时,除了文件上传之外,一切都正常工作。

出于测试和调试目的,我创建了一个uploadTest.xhtml当前看起来如下的页面:

为了从可能的错误原因列表中排除 Primefaces,我还创建了另一个测试页面,其中我只使用<h:inputFile>并且<h:commandButton>没有 primefaces 组件。这给了我同样的结果。

这是我的 UploadBean.java:

我个人的猜测是,这个问题与应用程序的设置方式或 JSF 在应用程序中的实现方式有关。为了解决这个问题,我遵循了@BalusC 的JSF 设置指南。此外,我遵循了他的一些其他故障排除指南,包括如何排除 p:fileupload 故障以及按下 h:commandButton 时未调用 bean 方法的可能原因列表。不幸的是,到目前为止没有任何帮助。

我在 Netbeans 控制台和 Chrome 的开发人员控制台中都没有收到错误。按下上传按钮后,我可以使用开发人员工具看到 HTTP 请求。响应的代码为 200,所以一切都应该在 HTTP 端正常工作,对吧?

Web 应用程序使用以下组件:

JSF 2.2.13 (莫哈拉)

春季网络流

春季MVC

Primefaces 5.3

全方位 1.3

靴面 0.9.1

该应用程序直接通过 Netbeans 在 Jetty 8.1.5 服务器上部署和测试。

为了检查我是否下载了所有必要的依赖项,我将包含我的 pom.xml 的相关方(我使用 maven):

我包括commons-iocommons-fileupload测试是否p:fileupload可以使用旧的(在 Servlet 3.0 之前)方式,但它没有。

这是我的 web.xml :(请注意,我也在没有成功的情况下测试了context-paramandfilter条目p:fileupload):

-->

请注意,我必须用空格 (´/ *´) 分隔“/*”,以便我的其余代码不会被格式化为注释。(如果有更聪明的方法可以做到这一点,请不要犹豫告诉我)

Spring 的 MVC Dispatcher Servlet 会以某种方式干扰 Servlet 3.0 的上传功能吗?

我是否使用了其他违反 Servlet 3.0 文件上传标准行为的组件?

我的项目是否设置正确?

非常感谢。即使是一点提示也将不胜感激。

0 投票
2 回答
3162 浏览

html - HTML 表单的默认编码类型是什么?

假设我有该表格包含一些输入:

如果我提交此表单:浏览器使用哪种编码类型?

是否有明确定义的默认类型?
还是每个浏览器都选择它自己的编码类型(当然是在三个允许的编码类型中)?

0 投票
2 回答
3214 浏览

php - getRealPath() 返回 false(Laravel 5.2 和图像干预)

上传图片时,getRealPath()总是返回false

这是结果dd($image_file);

在此处输入图像描述

此外,当我尝试将它与图像干预一起使用时:

我收到以下错误:

AbstractDecoder.php 第 323 行中的 NotReadableException:图像源不可读

显然是因为getRealPath()返回false...有人已经问过这个问题:getRealPath return false (Image Intervention and Laravel 5.1) ...但是没有解决方案。

你知道为什么会发生这种情况,我该如何解决这个问题?

0 投票
1 回答
414 浏览

go - 使用 enctype="multipart/form-data" 将选择上传的文件的文件名传递给 Golang 中的结构字段

我的应用程序使用表单的 html 代码片段来上传文件

我需要获取上传文件的文件名并将其传递给 Golang 中的结构字段。

我正在尝试将选择上传到结构“产品”的“图像”字段的文件的名称传递。关于如何做到这一点的任何建议?