I use GitHub API with JS to create a small script #Create
,#Delete
,#Edit
E.g:
function createfile(/* url , */ fileName,fileMessage,fileContent){
var filename = /* "firstfile.txt" */ fileName;
var filemessage = /* "uploading a file" */ fileMessage;
var filecontent = /* "The data of the file2." */ fileContent ;
var basecontent = btoa(filecontent);
var apiurl = "https://api.github.com/repos/el3zahaby/testet/contents/{+path}".replace('{+path}',filename);
var filedata = '{"message":"'+filemessage+'","content":"'+basecontent+'"}';
$.ajax({
url: apiurl,
type: 'PUT',
beforeSend: function(xhr) {
xhr.setRequestHeader("Authorization", "Basic " + btoa("USERNAME:PASSWORD"));
},
data: filedata
}).done(function(response) {
console.log(response);
});
}
It works very well with uploaded text files But the problem is that I want to upload a picture, for example, or a video on Github
when I upload the image it looks like this :
�PNG
IHDRHHU��G cHRMz&�����u0�`:�p��Q<bKGD�������tIME�
/��p�IDATx�͜wx�E��?��rs��BK!���D���}�?��
]uu��,��.�bߵ
TT��CH��rs����ǽ�
...
update 1
the code which reads files from input
function readURL(input) {
if (input.files && input.files[0]) {
//console.log(input.files[0].getAsBinary());
// createfile(input.files[0].name,"uploading a file", input.files[0])
var reader = new FileReader();
reader.onload = function (e) {
$('#falseinput').attr('src', e.target.result);
$("#v1").html('<source src="'+ e.target.result +'" type="video/mp4"></source>' );
$('#base').val(e.target.result);
$('#base1').val(btoa(unescape(encodeURIComponent(reader.result))));
var content = e.target.result;
createfile(input.files[0].name,"uploading a file", unescape(encodeURIComponent(content)))
};
if (allow.binary.indexOf(input.files[0].type) === -1) {
alert(input.files[0].type);
reader.readAsText(input.files[0],"UTF-8");
}else{
reader.readAsDataURL(input.files[0]);
}
}
}
Is there any way to upload photos and other files using javascript & Github API?