如何修改表单数据
How to modify formdata
我正在使用HTML5 AJAX图像上传,我想在表单数据(如image_user_type等)中添加一些额外的信息,但我无法在php中找到image_user_type和其他code.image_user_type等的值,这些信息是额外的信息基础,我必须在此基础上为不同类型的/图像组创建不同的文件夹,例如XYZ grop pqr组.任何帮助都应不胜感激。
.HTML
<form method="post" enctype="multipart/form-data" action="<?php echo Yii::app()->request->baseUrl?>/index.php/Feedback/FeedImage">
<input type="file" name="images" id="images" />
<input type="hidden" value="xyz" name="image_user_type" />
<button type="submit" id="btn"><?php echo Yii::t('strings','Upload Files!');?></button>
</form>
.JS
<script type="text/javascript">
(function () {
var userimage=$("#waiter_img");
var input = document.getElementById("images"),
formdata = false;
function showUploadedItem (source) {
userimage.attr('src',source);
}
if (window.FormData) {
formdata = new FormData();
document.getElementById("btn").style.display = "none";
}
input.addEventListener("change", function (evt) {
//document.getElementById("response").innerHTML = ""
userimage.attr('src','<?php echo Yii::app()->request->baseUrl ?>/images/loader.gif');
var i = 0, len = this.files.length, img, reader, file;
for ( ; i < len; i++ ) {
file = this.files[i];
if (!!file.type.match(/image.*/)) {
if ( window.FileReader ) {
reader = new FileReader();
reader.onloadend = function (e) {
showUploadedItem(e.target.result, file.fileName);
};
reader.readAsDataURL(file);
}
if (formdata) {
console.log(file);
formdata.append("images[]", file);
formdata.append("image_user_type",$("#image_user_type").val());
}
}
}
if (formdata) {
$.ajax({
url: "<?php echo Yii::app()->request->baseUrl?>/index.php/Feedback/FeedImage",
type: "POST",
data: formdata,
processData: false,
contentType: false,
success: function (res) {
}
});
}
}, false);
}());
.PHP
public function actionFeedImage()
{
echo $image_type=$_POST['image_user_type'];
foreach ($_FILES["images"]["error"] as $key => $error) {
if( !is_dir(Yii::app()->basePath.'/../images/feedback') ) mkdir(Yii::app()->basePath.'/../images/feedback');
if( !is_dir(Yii::app()->basePath.'/../images/feedback/'.$image_type) ) mkdir(Yii::app()->basePath.'/../images/feedback/'.$image_type);
if ($error == UPLOAD_ERR_OK) {
$name = Yii::app()->session['admin_id']."-".date('Y-m-d H:i:s.')."-".$_FILES["images"]["name"][$key];
move_uploaded_file( $_FILES["images"]["tmp_name"][$key],Yii::app()->basePath.'/../images/feedback/'.$image_type.'/'. $image_without_space);
}
正如@pat建议的那样,尝试清理一些代码。
如果您这样做是为了学习,那就去做吧,我们将尽力为您提供帮助。
另一方面,我认为最好使用一个在漂亮的用户界面中处理所有这些的扩展,我推荐 XUpload
查看有关使用 XUpload 发送其他表单数据的 wiki
(免责声明:我是扩展的作者)
我们可以使用以下方法获取表单数据的额外信息:-
$image_type=$_REQUEST['image_user_type'];
相关文章:
- 如何从pdftron webviewer获取表单数据
- JS验证ajax返回的html中的表单数据
- 在不同的文件中使用Javascript获取表单数据
- 使用Javascript读取Webstorage表单数据
- Uploadify-随机表单数据's已返回上载表单
- 如何在使用ajax提交的codeigniter中使用form_validation验证表单数据
- 在post-expressjs之后持久化表单数据
- 需要一个用于AJAX的Javascript库,其中包含多部分/表单数据
- jQuery发布并获取表单数据
- Ajax表单数据phpPOST不工作
- 如何将整个模型集附加到表单数据中,并在MVC中获得它
- 如何从javascript访问表单数据
- 如何从Angular Payments获取表单数据
- 通过javascript获取pdf文件的表单数据
- 有没有一种方法可以在jQuery.serialize()之前获取表单数据,或者与jQuery.sserialize(()
- 在 Angular2 中构建多部分/表单数据 POST 请求并验证输入类型文件
- 无法读取未定义的属性“用户名” - 通过电子邮件在 Node.js 中发送表单数据
- 使用 Ajax 获取表单数据
- 我无法从引导模式中清除表单数据
- 如何从 django 模板语言获取表单数据