1

テーブルに mysql データベースのデータを表示する単純な php Web ページを作成しました。ユーザーは特定の行の画像をアップロードでき、これらはサーバーのアップロード フォルダーに保存されます。特定の行のボタンをクリックする機能を追加できるようにしたいと考えています。その行の画像は、行の部品番号にちなんで名付けられたフォルダー内のユーザーのマシンにダウンロードされます。画像のアップロード ダイアログ ボックスのコードは次のとおりです。

//function to open a dialog where the user can upload an image to an existing row
$(function() 
  {

//$uniqueID = $('#uniqueID').val();

//opens the dialog form using the 'imgupdialog' fields outlined below 
    $( "#imgupdialog" ).dialog
({
autoOpen: false,
modal: true,
buttons: 
    {
Cancel: function() 
    {
$( this ).dialog( "close" );
    }
},

});

//when the 'imgup' button is clicked the ID of the row will be obtained and the dialog will open
$(document).on('click', '.imgup', function()
    { 
//$( ".imgup" ).click(function() {
$('#uniqueID').val(($(this).attr('id')));
$("#imgupdialog").dialog( "open" );
    });

});

画像をアップロードするコードは次のとおりです。

$con = mysql_connect("", "");

if (!$con) {
die("Error: " . mysql_error());
}

mysql_select_db("web", $con);

if(isset($_FILES['files']))
  {
$UniqueID = $_POST['var1'];
$desired_dir="uploads/";
$errors= array();

foreach($_FILES['files']['tmp_name'] as $key => $tmp_name )
{
$file_name = $_FILES['files']['name'][$key];
$file_size =$_FILES['files']['size'][$key];
$file_tmp =$_FILES['files']['tmp_name'][$key];
$file_type=$_FILES['files']['type'][$key];  

if($file_size > 2097152)
    {
$errors[]='File size must be less than 2 MB';
    }

$query="INSERT INTO web.PE_upload_data (ID, FILE_NAME, FILE_SIZE, FILE_TYPE) VALUES ('$UniqueID', '$file_name','$file_size','$file_type')";


if(empty($errors)==true){
  if(is_dir($desired_dir)==false)
  {
mkdir("$desired_dir", 0700);    // Create directory if it does not exist
        }
        if(is_dir("$desired_dir/".$file_name)==false)
        {
            move_uploaded_file($file_tmp,"$desired_dir/".$file_name);
        }else
        {  // rename the file if another one exists
            $new_dir="$desired_dir/".$file_name.time();
             rename($file_tmp,$new_dir) ;               
        }
     mysql_query($query);           
    }
    else
    {
            print_r($errors);
    }
}
if(empty($error))
{
    echo "Success";
}
      }

どんな助けでも大歓迎です!

4

1 に答える 1

0

多くの人が指摘しているように、ブラウザではローカル マシンにアクセスできません。Flash、Java、または私のお気に入りのSilverlightをIsolatedStorageフォルダーに保存する場合、さまざまな回避策があります。分離ストレージを使用するためのサンプル コードを次に示します: http://msdn.microsoft.com/en-us/library/cc265154(v=vs.95).aspx

于 2013-04-10T20:00:51.833 に答える