Vue资源上传文件到PHP

时间:2018-08-13 22:32:47

标签: javascript php vue.js

我正在尝试通过资源发送图像并在php文件中进行恢复,但是我没有成功,这是我的JS文件:

//* AJAX *//
startAsyncNews: function(){
    if(this.sendimage){
        var formdata = new FormData();
        formdata.append("file",this.contentnew.imageFile );
        console.log(this.contentnew.imageFile);
    }   

    // POST /someUrl
    this.$http.post('controllers/newsController.php', { 
        data:{action : this.accion_new, data_new: this.contentnew , imgf : formdata}
    }).then(response => {
    }, response => {
        console.log("error");
    });
},
imageSelect: function($event){
    this.sendimage=true;
    this.contentnew.imageFile =$event.target.files[0];  
}

当我使用console.log = console.log (this.contentnew.imageFile)时,它正确地显示了图像的属性,也就是说,它很好地发送了文件,但是当我在php中接收到文件并进行vardump时,我得到了这个对象(stdclass )#3(0)没有属性,没有属性,使用json_decode / encoding我将其清空,也可以尝试

headers: {
    'content-type': 'multipart/form-data'
}

但是它会产生以下错误:

  

多部分/表单数据POST中缺少边界

2 个答案:

答案 0 :(得分:1)

您需要使用var << var2函数将所有数据添加到formdata对象中。
然后,您只需发送formdata.append(key,value)

formdata

http请求formdata.append('action ',this.accion_new); formdata.append('data_new',this.contentnew); this.$http.post('controllers/newsController.php', { data:formdata }); // or just if i'm not mistaken this.$http.post('controllers/newsController.php',formdata); 中的对象。

答案 1 :(得分:0)

我不知道scale_fill_viridis()#change values greater than 2 to NA test.df$value <- ifelse(test.df$value <= 2, test.df$value, NA) ggplot(test.df, aes(q, variable, fill = value)) + geom_raster() + scale_fill_viridis(na.value = "yellow", #make NAs (values > 2) yellow limits = c(-2,2), #define limits of scale labels = c(as.character(-2:1), ">= 2"), breaks = -2:2) 是什么,但是这一行:

this.accion_new

应该简单地是:

this.contentnew