防止从共享网络上传PHP文件

时间:2019-11-25 08:32:59

标签: javascript php jquery file-upload bootstrap-4

我有一个用PHP上传给客户的文件,但是由于他们的网络很慢,所以从他们的网络上传时,它的工作不好(如果从他们的计算机桌面上传,效果很好)。

我可以阻止用户从他们的网络中选择文件,而只能从他们自己的计算机中允许吗?

我想到了在功能\\中仅允许以网络路径//fileSelected()开头的文件路径。但是由于新浏览器的安全性,无法使用JavaScript / jQuery读取用户的上传路径,因为它已被“ fakepath”替换。

我的脚本是用PHP上传的标准文件。

<div class="custom-file">
<input type="file" class="custom-file-input" id="fileToUpload" onchange="fileSelected();" name="fileToUpload" accept=".zip" required>
<span id="selected-file" class="custom-file-label" for="fileToUpload">Choose file</span>
<div class="invalid-feedback">
Please select a file.
</div>
</div>

function fileSelected() {
//Calculate size
}

function uploadFile(fd) {
    fd.append("fileToUpload", document.getElementById('fileToUpload').files[0]);
    var xhr = new XMLHttpRequest();
    xhr.upload.addEventListener("progress", uploadProgress, false);
    xhr.addEventListener("load", uploadComplete, false);
    xhr.addEventListener("error", uploadFailed, false);
    xhr.addEventListener("abort", uploadCanceled, false);
    xhr.open("POST", "src/fileUpload.php");
    xhr.send(fd);
}

fileUpload.php

<?php
//$fileName = $_FILES["fileToUpload"]["name"]; // The file name
$fileName = $_SESSION['fileName'];
$fileTmpLoc = $_FILES["fileToUpload"]["tmp_name"]; // File in the PHP tmp folder
$fileType = $_FILES["fileToUpload"]["type"]; // The type of file it is
$fileSize = $_FILES["fileToUpload"]["size"]; // File size in bytes
$fileErrorMsg = $_FILES["fileToUpload"]["error"]; // 0 for false... and 1 for true

move_uploaded_file($fileTmpLoc, "../uploads/$fileName")
?>

0 个答案:

没有答案