2015-11-25 3 views
0

Я работаю над загрузкой файлов api в php. Теперь я просто создаю этот простой php, который выгрузит файл с html-страницы на сервер. Но в этом коде имя элемента управления файловой системой исправлено, поэтому я передаю это имя в своем php-коде для загрузки файла. Но я хочу создать этот api для третьей стороны. Если кто-нибудь попросит api, тогда я дам ссылку на мой api, и они будут потреблять его. Теперь кто-нибудь, пожалуйста, помогите мне, чтобы преобразовать это в динамичномСоздать динамическую файловую загрузку api в php

Вот это HTML-код

<html> 
<head> 
</head> 
<body> 

<h2>Upload Image </h2> 
<form action="http://mvcangularworld.com/api.php" method="POST" enctype="multipart/form-data" > 
<input type="file" name="filename" value="" /> 
<br /> 
<input type="submit" value="Upload File" /> 
</form> 

</body> 

</html> 

и вот мой PHP код api.php

<?php 

// Path to move uploaded files 
$target_path = 'images/'; 


$response = array(); 


$file_upload_url = $target_path; 
$filename = $_POST['filename']; 
if (isset($_FILES['filename']['name'])) 
{ 
    $target_path = $target_path . basename($_FILES['filename']['name']); 
    // reading other post parameters 
    echo $_FILES['filename']['name']."<br />"; 
    echo $_FILES['filename']['tmp_name']."<br />"; 

    $response['file_name'] = basename($_FILES['filename']['name']); 

    try 
    { 
     // Throws exception incase file is not being moved 
     if (!move_uploaded_file($_FILES['filename']['tmp_name'], $target_path)) 
     { 
      // make error flag true 
      $response['error'] = true; 
      $response['message'] = 'Could not move the file!'; 
     } 

     // File successfully uploaded 
     //echo $file_upload_url . basename($_FILES['filename']['name']); 
     $response['message'] = 'File uploaded successfully!'; 
     $response['error'] = false; 
     $response['file_path'] = $file_upload_url . basename($_FILES['filename']['name']); 
    } 
    catch (Exception $e) 
    { 
     // Exception occurred. Make error flag true 
     $response['error'] = true; 
     $response['message'] = $e->getMessage(); 
    } 
} 
//else 
//{ 
    // File parameter is missing 
/* $response['error'] = true; 
    $response['message'] = 'Not received any file'; 
} */ 

// Echo final json response to client 
echo 

json_encode($response, JSON_UNESCAPED_SLASHES); 
?> 

здесь ссылка апи

http://mvcangularworld.com/api.php

Пожалуйста, помогите мне сделать это api dyn АМИК

ответ

0

Простое решение может быть, добавить скрытое поле, которое есть имя поля файла, как:

<input type="hidden" name="fileFieldName" value="filename" /> 

и на стороне сервера:

$fileFieldName = $_POST['fileFieldName']; 
move_uploaded_file($_FILES[$fileFieldName]['tmp_name'] 
+0

Я просто хочу, чтобы мой апи динамический так что, если я дам это любому органу, который человек может потреблять, что согласно этому требованию. Я не хочу сказать клиенту добавить скрытое поле в ваш html –

+0

@ Азаддхуан. Это не так. Большинство API CSRF запрашивают у пользователей использование скрытых полей. –

+0

На самом деле я должен дать это разработчику andriod, чтобы он мог загружать изображение на мой сервер, используя его приложение anrdiod –

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