Add upload file from url

This commit is contained in:
Lionel Pocholle 2021-07-13 14:29:39 +02:00
parent 360a7c112f
commit 673f0433ed
3 changed files with 81 additions and 1 deletions

View File

@ -8,7 +8,8 @@
<title>Local Transfer</title> <title>Local Transfer</title>
</head> </head>
<body> <body>
<div class="transfer"> <input type="text" id="url">
<div class="transfer">
<div id="drop-area"> <div id="drop-area">
<form class="my-form"> <form class="my-form">
<p>Upload multiple files with the file dialog or by dragging and dropping images onto the dashed region</p> <p>Upload multiple files with the file dialog or by dragging and dropping images onto the dashed region</p>

View File

@ -55,6 +55,26 @@ function handleFiles(files) {
files.forEach(previewFile) files.forEach(previewFile)
} }
//upload file from url
$('#url').keypress(function (e) {
if (e.which == 13) {
var url = encodeURIComponent($('#url').val());
$.get({
url: 'uploadUrl.php',
data: 'url=' + url,
beforeSend: function(){
lock = 1;
},
success: function(data, statut) {
lock = 0;
listFile();
},
error: error,
});
return false;
}
});
function uploadFile(file) { function uploadFile(file) {
let url = 'upload.php' let url = 'upload.php'
let formData = new FormData() let formData = new FormData()

59
uploadUrl.php Normal file
View File

@ -0,0 +1,59 @@
<?php
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
include 'fonction.php';
$max_size = convertToBytes('2GB');
$root = $_SERVER["DOCUMENT_ROOT"];
$target_dir = "$root/uploads/";
if(! isset($_GET["url"])) {
header("HTTP/1.1 400 No given url");
exit();
}
$url = $_GET["url"];
$headers = get_headers($url, true);
$name = basename($url);
$size = $headers['Content-Length'];
if ((folderSize($target_dir) + $size) > $max_size) {
header("HTTP/1.1 400 " . $name . " file too large");
exit();
}
if (! extension_loaded('mbstring')) {
header("HTTP/1.1 500 php module missing");
exit();
}
if(! mb_check_encoding($name)) {
header("HTTP/1.1 400 Bad encode");
exit();
}
$target_file = $target_dir.$name;
// Check if file already exists
if (file_exists($target_file)) {
header("HTTP/1.1 400 This file already exists");
echo "This file already exists.";
}
else {
if(file_put_contents($target_file, fopen($url, 'r'))) {
echo "The File ".$name." of size ".formatBytes($size)." has been uploaded.";
} else {
header("HTTP/1.1 500");
echo "There was an error uploading your file.";
}
}
?>