Question: I want to upload images on click of img tag.When user Click on image, file input tag will call and user chose any image and set this image to clicked img tag.

How i will achive.Can anyone tell me.

Answer: 
You can achieve this by triggering a click event with jquery. First thing to do is.

1. Create An image tag (I'm assuming you want to put a no picture image on this tag)
2. Create a file input tag somewhere on the page, preferable under the above image tag.
3. Hide the file input (Set display to none with css);
4. use jquery to trigger a click on the file input from the click handler of the "no picture" image.
5. handle your upload as usual using your file input tag.

also get [this](https://github.com/danialfarid/angular-file-upload) angular module that makes file upload easy in angular

The HTML

`<img src="no_image.png" ng-click="triggerUpload()" class="image-holder"/>
 <input type="file" ng-file-select="uploadImage($files)" style="display:none" id="fileInput" name="filedata"/>`

now to trigger the hidden file input control

THE JAVASCRIPT

```
$scope.triggerUpload=function()
{
 var fileuploader = angular.element("#fileInput");
    fileuploader.on('click',function(){
        console.log("File upload triggered programatically");
    })
    fileuploader.trigger('click')
}

$scope.uploadImage=function(selectedfiles)
{
    $upload.upload({
       url:"link to server script",
       file:selectedFiles
    })
}

```

See [this](http://angular-file-upload.appspot.com/) for a demo of the module
try this

```
<img url="#Your image url" alt="click here to add file upload" />
<div id="fileUpload" />

```

and script

```
$('img').click(function () {
AddFileUpload();
 });

function AddFileUpload() {
    $('#fileUpload').append('<input type="file"/>');
}

```

[Demo](http://jsfiddle.net/carunchandran/25xGQ/1/)