假路径Javascript问题

时间:2016-04-25 14:41:30

标签: javascript php ajax

当我尝试检索文件路径时,它会向我显示如下结果:“C:\ fakepath \ _胺.jpeg”,因此服务器中的上传无法解决该问题。

 $('input[type=file]').change(function () {
              var filePath=$('#file-input').val();


         $.ajax({
              url : "{{path('upload_file')}}",
              type : 'POST',
              data: {
                   filePath : filePath,
                   method: 'post',
                   params: {
                       action: "uploadFile"
                   }
               },
              success : function(data, textStatus, jqXHR) {

                alert(data);


              }
          });

             }); 

2 个答案:

答案 0 :(得分:2)

你这样做是错的。 您必须创建一个表单对象并通过$ .ajax发送它。 我假设您已经编写了正确的服务器端代码来保存图像。

    var f =   new FormData();
    f.append('img',document.getElementById("file-input").files[0]);

    var url= "{{Your URL}}";
    $.ajax({
        url: url,
        type:"post",
        data: f,
        dataType:"JSON",
        processData: false,
        contentType: false,
        success: function (data, status)
        {
            console.log(data);
        },
        error: function (data)
        {

          if (data.status === 422) {

                console.log("upload failed");


            } else {
                console.log("upload success");

                }

    }); 

答案 1 :(得分:-1)

默认情况下,您的文件会上传到临时文件夹。您需要将其移动到实际位置以便像访问php一样访问它:

move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)

供参考,请参阅http://www.w3schools.com/php/php_file_upload.asp