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: 
@shanks solution doesn't address setting the image to the clicked image. I have modified the code to address the same.

**HTML**

```
<input type="file" ng-file-select="uploadImage($files)" id="file-input" name="filedata"/> 
<img src="no_image.png" ng-click="triggerUpload()" id="imageId"/>

```

**JAVASCRIPT**

In browsers supporting the File API, you can use the FileReader constructor to read files once they have been selected by the user. Supported browsers - IE 10+, Safari 6.0.2+, Chrome 7+, Firefox 3.6+, Opera 12.02+.

```
$scope.triggerUpload=function() {
    var fileuploader = angular.element("#file-input");
    fileuploader.on('click',function(){
        console.log("File upload triggered programatically");
    });
    fileuploader.on('change', function(e) {
        var reader = new FileReader();
        reader.onload = function () {
            document.getElementById('imageId').src = reader.result;
        }

        var files = fileuploader[0].files;
        reader.readAsDataURL(files[0]);

    });
    fileuploader.trigger('click')
}

```

Uploading code is same as @shanks solution

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

```
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/)