2016-07-14 4 views
1

Я пытаюсь загрузить файл и отправить файл в виде вложения и загрузить файл с прикрепленным файлом, который будет перемещен в папку temp. Я дал разрешение chmod. Но файл не может перейти в загруженную папку.Не удалось переместить загруженный файл на онлайн-сервер в php

Вот код

<html> 
<head> 
<title> Sending Email </title> 
</head> 
<body> 
<?php 
session_start(); 
// Read POST request params into global vars 
include_once "db.php"; 

$name1=mysql_real_escape_string(stripslashes($_POST['name1'])); 
$subject1=mysql_real_escape_string(stripslashes($_POST['subject1'])); 
$email1=$_POST['email1']; 
$phone=$_POST['phone']; 
$username=mysql_real_escape_string($_SESSION['sess_user4']); 
    $to = "[email protected]"; 
$from=$_POST['email1']; 
$fileatt  = $_FILES['fileatt']['tmp_name']; 
$fileatt_type = $_FILES['fileatt']['type']; 
$fileatt_name = mysql_real_escape_string($_FILES['fileatt']['name']); 
$fileatt_size = $_FILES['fileatt']['size']; 
$aa=filesize($fileatt); 
$headers = "From: $from"; 
if (is_uploaded_file($fileatt)) { 
    // Read the file to be attached ('rb' = read binary) 
$name1=mysql_real_escape_string(stripslashes($_POST['name1'])); 
    $file = fopen($fileatt,'rw'); 
    $content = fread($file,filesize($fileatt)); 
chmod("temp/", 0777); 
fclose($file); 
$message="Name:$name1\n\n 
      Email:$email1\n 
      Subject:$subject1\n 
      Phone No:$phone"; 
    // Generate a boundary string 
    $semi_rand = md5(time()); 
    $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x"; 


    // Add the headers for a file attachment 
    $headers .= "\nMIME-Version: 1.0\n" . 
       "Content-Type: multipart/mixed;\n" . 
       " boundary=\"{$mime_boundary}\""; 

    // Add a multipart boundary above the plain message 
    $message = "This is a multi-part message in MIME format.\n\n" . 
      "--{$mime_boundary}\n" . 
      "Content-Type: text/html; charset=\"iso-8859-1\"\n" . 
      "Content-Transfer-Encoding: 7bit\n\n" . 
      stripslashes($message). "\n\n"; 

    // Base64 encode the file data 
    $content = chunk_split(base64_encode($content)); 

    // Add file attachment to the message 
    $message .= "--{$mime_boundary}\n" . 
       "Content-Type: {$fileatt_type};\n" . 
       " name=\"{$fileatt_name}\"\n" . 
       //"Content-Disposition: attachment;\n" . 
       //" filename=\"{$fileatt_name}\"\n" . 
       "Content-Transfer-Encoding: base64\n\n" . 
       $content . "\n\n" . 
       "--{$mime_boundary}--\n"; 

} 

// Send the message 
$ok = @mail($to, $subject, $message, $headers); 
if ($ok) { 
    echo "<script>window.open('display.php','_self')</script>"; 
} else { 
    echo "<p>Mail could not be sent. Sorry!</p>"; 
} 
move_uploaded_file($_FILES["fileatt"]["tmp_name"],'temp/'.basename($_FILES['fileatt']['name'])); 
$query = "INSERT INTO register (name,type,size,content,name1,email1,subject1,phone,username) VALUES ('$fileatt_name','$fileatt_type','$fileatt_size','$content','$name1','$email1','$subject1','$phone','$username')"; 

mysql_query($query) or die('Error, query failed'); 
?> 
</body> 
</html> 
+0

Chown также может быть хорошей идеей, 'chown -R yourusername: www- data/path/to/folder' –

+0

Итак, какие _are_ разрешения связанных папок? – arkascha

+0

Я хочу загрузить загруженный файл и просмотреть его содержимое. Мне нужно прочитать, написать разрешение на загруженный файл. – user6582683

ответ

0

Попробуйте повторить $ _FILES [ "fileatt"] [ "tmp_name"], "Темп /. Базовое имя ($ _ FILES [ 'fileatt'] [ 'имя']));

И посмотрите, получишь ли вы путь, как ожидалось.

+0

Это не ответ. Это должен был быть комментарий. – arkascha

+0

Он дает ошибку для chmod – user6582683

+0

Это должен был быть комментарий, но для этого мне нужно 50 очков репутаций. Какая ошибка вы получаете? – Michael

Смежные вопросы