PDA

View Full Version : تغییر نام فایل با توجه به مقادیر یک فرم



kuh_nur
چهارشنبه 14 آبان 1393, 16:56 عصر
با سلام
من یک پروژه دارم که از طریق یک فرم از کاربر 3 تا مقدار می گیره و باید با توجه به این مقادیر نام فایل خاصی رو تغییر بده و لینک دانلود بر اساس نام جدید ایجاد شه
مثلا:
1- نام فایل اصلی : filename.exe
2- مقادیر وارد شده : "1000" و "mx" و "1393"
3- نام فایل خروجی قابل دانلود: 1393mx1000.exe

bagherok
چهارشنبه 14 آبان 1393, 17:53 عصر
rename("filename.exe","1393mx1000.exe");
http://php.net/manual/en/function.rename.php

kuh_nur
پنج شنبه 15 آبان 1393, 09:20 صبح
دوست عزیز مرسی از توجهت
ولی من می خوام این مقادیر از یه فرم گرفته شن و برای هر کاربر یک فایل جدید از روی فایل قبلی ایجاد کنه تا کاربر بتونه فایل رو دانلود کنه و پس از دانلود فایل مورد نظر پاک شه نه اینکه فایل اصلی تغییر نام پیدا کنه

marys_farahani
پنج شنبه 15 آبان 1393, 09:39 صبح
$srcfile='C:\File\Whatever\Path\Joe.txt';
$dstfile='G:\Shared\Reports\Joe.txt';
mkdir(dirname($dstfile), 0777, true);
copy($srcfile, $dstfile);

Unique
پنج شنبه 15 آبان 1393, 15:29 عصر
نیازی به این کارا نیست ! اگه فایل را از طریق توابع header یا x-sendfile ارسال میکنید میتونید اسمش را عوض کنید . نیازی به کپی یا rename کردن نیست ، منظورم در این خط هستش :

header("Content-Disposition: attachment; filename='$user_filename'");

bagherok
پنج شنبه 15 آبان 1393, 17:02 عصر
دوست عزیز مرسی از توجهت
ولی من می خوام این مقادیر از یه فرم گرفته شن و برای هر کاربر یک فایل جدید از روی فایل قبلی ایجاد کنه تا کاربر بتونه فایل رو دانلود کنه و پس از دانلود فایل مورد نظر پاک شه نه اینکه فایل اصلی تغییر نام پیدا کنه
خوب الان که بیشتر توضیح دادید قضیه فرق کرد:چشمک:


header('Content-Disposition: attachment; filename='.$new_filename);


readfile($orginal_filename);


<?php
if(isset($_GET['id']) && !empty($_GET['id'])){
$new_filename=$_GET['id'];
$orginal_filename='filename.exe';

header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.$new_filename);
header('Content-Transfer-Encoding: binary');

ob_clean();
flush();
readfile($orginal_filename);
exit;
}

?>