2014-11-15 3 views
0

Мне нужно знать, как я могу взять файл (.txt или еще) с клиентского ПК и загрузить его в какой-то каталог на сервере, где у меня есть сайт, который вам нужен, чем отправить e-mail с этим файлом в виде вложения (но это уже не проблема). Это нужно сделать с помощью функции PHP. Кто-нибудь может мне помочь, пожалуйста? СодержаниеPHP - Загрузка файла с клиента на сервер

+1

https://www.google.com/search?q=how+to+upload+files+using+php – EternalHour

ответ

0

Форма:

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title></title> 
</head> 
<body> 
    <form action="sendEmail.php" method="post" name="mainform" enctype="multipart/form-data"> 
    <table width="500" border="0" cellpadding="5" cellspacing="5"> 
    <tr> 
     <th>To Email</th> 
     <td><input name="toEmail" type="text"></td> 
    </tr> 

    <tr> 
     <th>Subject</th> 
     <td><input name="fieldSubject" type="text" id="fieldSubject"></td> 
    </tr> 
    <tr> 
     <th>Attach Your File</th> 
     <td><input name="attachment" type="file"></td> 
    </tr> 
    <tr> 
     <td colspan="2" style="text-align:center;"><input type="submit" name="Submit" value="Send File"></td> 
    </tr> 
    </table> 
    </form> 
</body> 
</html> 

Скрипт для обработки:

<?php 
$to = $_POST['toEmail']; 
$subject = $_POST['fieldSubject']; 

// Get file info 
$tmpName = $_FILES['attachment']['tmp_name']; 
$fileType = $_FILES['attachment']['type']; 
$fileName = $_FILES['attachment']['name']; 

if (file($tmpName)) { 
    $file = fopen($tmpName,'rb'); 
    $data = fread($file,filesize($tmpName)); 
    fclose($file); 

    $randomVal = md5(time()); 
    $mimeBoundary = "==Multipart_Boundary_x{$randomVal}x"; 

    $headers = "From: $fromName"; 

    $headers .= "\nMIME-Version: 1.0\n"; 
    $headers .= "Content-Type: multipart/mixed;\n" ; 
    $headers .= " boundary=\"{$mimeBoundary}\""; 

    $message = "This is test email\n\n"; 
    $data = base64_encode($data); 
} 

$result = mail ("$to", "$subject", "$message", "$headers"); 

if($result){ 
    echo "A email has been sent to: $to"; 
} 
else{ 
    echo "Error while sending email"; 
}