04-04-26, 04:07 PM
(04-04-26, 04:12 AM)nnnjk كتب : يعطيك العافيه
تم رفع الملف ويكتب رابط الملف مع المجلد
لاكن عند الدخول اليه صفحة 404 لم يوجد الملف
الله يعافيك
المشكلة عندك الآن ليست من التحميل
التحميل تم على الاغلب
لكن المسار اللي ينحفظ فيه الملف على الارجح ليس داخل public_html لذلك يطلع لك 404.
الحل الاسلم والاصح مكان او مسار الحفظ يجب ان يكون في مجلد الـ public_html
PHP كود :
<?php
session_start();
require('login.php');
if (!isset($_SESSION['username'])) {
die("يجب تسجيل الدخول");
}
?>
<!DOCTYPE html>
<html>
<head>
<title>تحميل ملف</title>
<style>
input[type=text] {
width: 100%;
padding: 12px;
margin: 8px 0;
border: 1px solid #ccc;
border-radius: 4px;
text-align: center;
}
input[type=submit] {
width: 100%;
background-color: #4CAF50;
color: white;
padding: 14px;
border: none;
border-radius: 4px;
}
body {
background-image: url("http://akveo.com/blur-admin/assets/img/blur-bg-blurred.jpg");
}
</style>
</head>
<body>
<div style="width:50%;margin:auto;">
<center>
<a href="logout.php">تسجيل خروج</a>
<hr>
<h2>تحميل ملف جديد</h2>
<form method="post">
<input required type="text" name="link" placeholder="الرابط المباشر"><br>
<input required type="text" name="dir" placeholder="اسم المجلد (مثال: uploads)"><br>
<input type="submit" name="download" value="ابدأ التحميل">
</form>
<hr>
<?php
if (isset($_POST['download'])) {
$link = trim($_POST['link']);
$dir = trim($_POST['dir']);
// ✅ التحقق من الرابط
if (!filter_var($link, FILTER_VALIDATE_URL)) {
die("❌ رابط غير صالح");
}
// ✅ منع الاختراق
if (strpos($dir, "..") !== false) {
die("❌ مسار غير مسموح");
}
// ✅ المسار الحقيقي داخل public_html
$basePath = __DIR__; // مكان السكربت (داخل public_html)
$fullDir = $basePath . "/" . $dir;
// ✅ إنشاء المجلد إذا غير موجود
if (!is_dir($fullDir)) {
mkdir($fullDir, 0755, true);
}
// ✅ بدء التحميل
$ch = curl_init($link);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HEADER => true,
CURLOPT_TIMEOUT => 300,
]);
$response = curl_exec($ch);
if (curl_errno($ch)) {
die("❌ خطأ: " . curl_error($ch));
}
$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
$headers = substr($response, 0, $header_size);
$body = substr($response, $header_size);
// ✅ استخراج اسم الملف
$filename = "";
if (preg_match('/Content-Disposition:.*filename=["\']?([^"\']+)/i', $headers, $matches)) {
$filename = $matches[1];
}
if (!$filename) {
$filename = basename(parse_url($link, PHP_URL_PATH));
}
if (!$filename || strlen($filename) < 3) {
$filename = "file_" . time();
}
// تنظيف الاسم
$filename = preg_replace('/[^a-zA-Z0-9\.\-_]/', '_', $filename);
$filepath = $fullDir . "/" . $filename;
// ✅ حفظ الملف
if (file_put_contents($filepath, $body)) {
// رابط الوصول
$fileUrl = $dir . "/" . $filename;
echo "✅ تم التحميل بنجاح<br><br>";
echo "? تم الحفظ في: " . $filepath . "<br><br>";
echo "<a href='$fileUrl' target='_blank'>? فتح الملف</a>";
} else {
echo "❌ فشل حفظ الملف";
}
curl_close($ch);
}
?>
</center>
</div>
</body>
</html>
اذا ما مشي الحال تأكد أن الملف داخل مجلد public_html
وأن المجلد (مثل uploads) موجود داخله و بصلاحيات 755 أو 775 وأن الرابط يشير لنفس المسار داخل الموقع.


![[صورة مرفقة: 177461173141861.gif]](https://up6.cc/2026/03/177461173141861.gif)