Angular提交表单数据
Angular submit form data
我使用ng流库将图像加载到服务器,在用户拖放图像后,我可以将HTML5文件图像下载到我的控制器,我需要将其与其他参数一起下载到服务器,如货币、主题等。我在谷歌上搜索了一下,发现最好的方法是转换为json形式的数据并使用POST方法发送。当我从服务器得到响应时,我看到表单数据包含主题,但不包含图像。可能出了什么问题?
在以下代码中,url是真实的,您可以尝试获得自己的响应。
角度代码:
var file = $flow.files[0];
$http({
method: 'POST',
url: "http://yuppi.com.ua/server/rest/add.php?key=453sdfg3t&action=add",
headers: { 'Content-Type': false },
transformRequest: function (data) {
var formData = new FormData();
formData.append("subject", angular.toJson(data.subject));
formData.append("file", data.file);
return formData;
},
data: { subject: subject, file: file}
}).
success(function (data, status, headers, config) {
alert(data);
}).
error(function (data, status, headers, config) {
alert(data);
});
PHP代码:
$form = file_get_contents("php://input");
echo "Form: "; print_r($form);
$_FILES 的var_dump
"array(1) {
["photo"]=>
array(5) {
["name"]=>
string(14) "gradient-2.png"
["type"]=>
string(9) "image/png"
["tmp_name"]=>
string(14) "/tmp/phpY8nqji"
["error"]=>
int(0)
["size"]=>
int(442567)
}
}
您应该将表单数据发送到控制器,请尝试以下操作:
数据:{主题:主题,数据:表单数据}
而且你需要首先定义formData才能通过$http发送
var file = $flow.files[0];
var formData = new FormData();
$http({
method: 'POST',
url: "http://yuppi.com.ua/server/rest/add.php?key=453sdfg3t&action=add",
headers: { 'Content-Type': false },
transformRequest: function (data) {
formData.append("subject", angular.toJson(data.subject));
formData.append("file", data.file);
return formData;
},
data: { subject: subject, data: formData}
}).
success(function (data, status, headers, config) {
alert(data);
}).
error(function (data, status, headers, config) {
alert(data);
});
对于php部分,你可以使用我写的这个函数:
function uplFile($fn,$path='upload/'){
$delim = explode(';base64,',$fn);
$type = str_replace('data:','',$delim[0]);
switch ($type) {
case "image/gif":
$type = '.gif';
break;
case "image/jpeg":
$type = '.jpg';
break;
case "image/png":
$type = '.png';
break;
case "image/bmp":
$type = '.bmp';
break;
}
$data = base64_decode($delim[1]);
$file = uniqid() .$type;
$success = file_put_contents($path.$file, $data);
return $file;
}
此函数获取formData()内容作为第一个参数,并获取第二个参数的上传位置。对于您的数据,您可以按照以下方式轻松使用:
uplFile($_POST['file']);
相关文章:
- 如何从pdftron webviewer获取表单数据
- JS验证ajax返回的html中的表单数据
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- 将单击事件添加到数据表
- 预览数据表单
- Ajax数据表单序列化防止双重提交
- 如何在 Spring Framework 中处理表数据表单提交
- 发布大型数据表单 Angular JS
- 覆盖Magento中的默认数据表单提交JS活动
- 保存不带按钮的数据表单
- 更新Highchart数据表单导出按钮
- 将数据表单转换为PDF
- 我的Angular视图没有用数据表单服务器更新
- 如何在不重新加载页面的情况下获取数据表单数据库
- JavaScript SDK返回数据表单嵌套函数
- 使用php AJAX发送数据表单请求失败
- 数据表单$scope在Angular的view (page)中不显示
- 实时交换 HTML 数据表单
- 搜索parse.com数据表单html输入
- 如何在MVC中返回JSON数据表单控制器到jsp