2013-01-01 53 views
0

我上傳圖片到服務器,需要放置_代替圖片中的空白。就像圖片名稱是Stack Flow.jpg一樣,我需要將它作爲Stack_Flow.jpg發送到目錄以及電子郵件中。 HOw可以用下面的代碼。我已經試過,但沒有成功..我發送4個文件在一個表格,代碼---重命名上傳圖片

$filea = $_FILES['FILE1']['name']; 
     $fileb = $_FILES['FILE2']['name']; 
     $filec = $_FILES['FILE3']['name']; 
     $filed = $_FILES['FILE4']['name']; 


$order_image_a='order_'.$orderId.'_'.$filea; 
     if(!empty($filea)) move_uploaded_file($_FILES['FILE1']['tmp_name'], "../files/$order_image_a"); 

     $order_image_b='order_'.$orderId.'_'.$fileb; 
     if(!empty($fileb)) move_uploaded_file($_FILES['FILE2']['tmp_name'], "../files/$order_image_b"); 

     $order_image_c='order_'.$orderId.'_'.$filec; 
     if(!empty($filec)) move_uploaded_file($_FILES['FILE3']['tmp_name'], "../files/$order_image_c"); 

     $order_image_d='order_'.$orderId.'_'.$filed; 
     if(!empty($filed)) move_uploaded_file($_FILES['FILE4']['tmp_name'], "../files/$order_image_d"); 

我使用下面的函數,我怎麼能運用它爲所有四個files--

<script> 
function convertSpecialChars($str) { 
    $str = str_replace(" ", "_", $str); 
    return $str; 
} 
</script> 

回答

0

使用:

<?php 
    function convertSpecialChars($str) { 
     $str = str_replace(" ", "_", $str); 
     return $str; 
    } 
?> 

然後你的代碼:

$filea = $_FILES['FILE1']['name']; 
$fileb = $_FILES['FILE2']['name']; 
$filec = $_FILES['FILE3']['name']; 
$filed = $_FILES['FILE4']['name']; 


$order_image_a='order_'.$orderId.'_'.convertSpecialChars($filea); 
if(!empty($filea)) 
    move_uploaded_file($_FILES['FILE1']['tmp_name'], "../files/$order_image_a"); 

$order_image_b='order_'.$orderId.'_'.convertSpecialChars($fileb); 
if(!empty($fileb)) 
    move_uploaded_file($_FILES['FILE2']['tmp_name'], "../files/$order_image_b"); 

$order_image_c='order_'.$orderId.'_'.convertSpecialChars($filec); 
if(!empty($filec)) 
    move_uploaded_file($_FILES['FILE3']['tmp_name'], "../files/$order_image_c"); 

$order_image_d='order_'.$orderId.'_'.convertSpecialChars($filed); 
if(!empty($filed)) 
    move_uploaded_file($_FILES['FILE4']['tmp_name'], "../files/$order_image_d"); 

或者,如果可能的話,你可以做一個循環(少重複的代碼):

for ($i = 1; $i <= 4; $i++) 
{ 
    $file = $_FILES['FILE' . $i]['name']; 

    $order_image = 'order_' . $orderId . '_' . convertSpecialChars($file); 

    if(!empty($file)) 
     move_uploaded_file($_FILES['FILE' . $i]['tmp_name'], "../files/$order_image"); 
} 
+0

再次它不刪除與給定的代碼的差距以及:( – user1859847

+0

我應該使它'變量''convertSpecialChars'? – user1859847

2

這裏是在PHP一個簡單的例子:

<?php 

$name = "Stack Flow.jpg"; 
echo preg_replace('/[\s\-]+/', '_', $name); 
?> 

回報Stack_Flow.jpg

http://codepad.org/MQoEZ2wv

1

這不是一個腳本,但PHP ..

<? 
function convertSpecialChars($str) { 
    $str = str_replace(" ", "_", $str); 
    return $str; 
?> 

//做同樣爲所有其它圖像..

$filea = str_replace(' ', '_', $filea; 
$order_image_a='order_'.$orderId.'_'.$filea; 
if(!empty($filea)) move_uploaded_file($_FILES['FILE1']['tmp_name'], "../files/$order_image_a"); 
0

在你的代碼更改$order_image_a='order_'.$orderId.'_'.$filea;和其他類似的線 $order_image_a='order_'.$orderId.'_'.convertSpecialChars($filea);

反而會更好,如果你就會知道如何工作,你的代碼。