Javascript 如何修改formdata
我正在使用HTML5 AJAX图像上传,我想在表单数据中添加一些额外的信息,如image\u user\u type等,但我无法在php代码中找到image\u user\u type和其他的值。image\u user\u type等是额外的信息基础,我必须根据这些信息为不同类型/组的图像创建不同的文件夹,如xyz grop pqr group . 任何帮助都应该感谢 HTMLJavascript 如何修改formdata,javascript,php,jquery,yii,Javascript,Php,Jquery,Yii,我正在使用HTML5 AJAX图像上传,我想在表单数据中添加一些额外的信息,如image\u user\u type等,但我无法在php代码中找到image\u user\u type和其他的值。image\u user\u type等是额外的信息基础,我必须根据这些信息为不同类型/组的图像创建不同的文件夹,如xyz grop pqr group . 任何帮助都应该感谢 HTML 正如@pat所建议的,试着清理一下代码 如果你这样做是为了学习,那么就去做吧,我们会尽力帮助你 另一方面,我认为最好
正如@pat所建议的,试着清理一下代码 如果你这样做是为了学习,那么就去做吧,我们会尽力帮助你 另一方面,我认为最好使用一个扩展,在一个好的用户界面中处理所有这些,我建议 看一下关于发送的wiki
(免责声明:我是扩展的作者)我们可以通过以下方式获得formdata的额外信息:-
$image_type=$_REQUEST['image_user_type'];
在发布之前,您可能需要考虑清理代码。可读性等等。。。您是否检查了正在发布到后端的内容(例如,使用Fiddler)?
<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);
}());
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);
}
$image_type=$_REQUEST['image_user_type'];