如何在更改时将图像上载到服务器

时间:2013-12-18 12:44:04

标签: php codeigniter jquery gd jcrop

我有一个像

这样的输入标签
<form id="myForm">
<!-- has lots of inputs above like username password etc -->
<input type="file" id="user_photo" name="user_photo" tabindex="6" size="6" class="" accept="jpeg|png|jpg|gif|PNG|JPEG|GIF|JPG" >

OnChange,我想通过AJAX上传图像并将其保存在服务器中。保存后,它应显示在预览div中,我可以使用jCrop按用户的意愿裁剪,并在用户单击提交按钮时再次将其保存到服务器(裁剪后)。

如果你有更好的方法,请告诉我。

注意,我只是想用文件内容触发ajax post请求并将其保存到我的uploads文件夹中,而不发送其余的表单元素。

我使用codeigniter。我已经尝试过valum的fileuploader ..没有给我结果。

1 个答案:

答案 0 :(得分:0)

答案从这里被盗:Can i preview the image file who uploaded by user in the browser?

  1. 使用HTML5 File Api加载图像客户端。
  2. 然后在将图像加载到标签后使用jCrop。
  3. 然后(我假设)使用jCrops onRelease方法进行Ajax调用。
  4. 这是唯一一个ajax调用,并且已经修改了
  5. <img id="preview" src="placeholder.png" height="100px" width="100px" />
    <input type="file" name="image" onchange="previewImage(this)" accept="image/*"/>
    <script type="text/javascript">      
     function previewImage(input) {
        var preview = document.getElementById('preview');
        if (input.files && input.files[0]) {
          var reader = new FileReader();
          reader.onload = function (e) {
            preview.setAttribute('src', e.target.result);
             $('#preview').Jcrop({
                onRelease: yourAjaxFunctionToSubmitToServer
             });
          }
          reader.readAsDataURL(input.files[0]);
        } else {
          preview.setAttribute('src', 'placeholder.png');
        }
      }
    </script>
    

    显然,这需要根据您的需要进行一些修改,但您明白了。