研究演習(小松原)

Java ソースコード (ファイル名はFTPsend.java)
simpleftp.jarファイルをプログラムと同じディレクトリに保存しておくこと。

//小松原ゼミ Java サンプルプログラムソース
//FTPsend.java
//ユーザ名、パスワード、サーバアドレス、送信するファイル名 を
//GUIウィンドウ内で指定して送信ボタンをクリックすると、FTP送信を行う。
//コンパイルする際には、同じディレクトリに simpleftp.jar を
//入れておかなければならない。この中にFTP接続のためのクラスが
//記述されている。

import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.net.*;
import java.io.*;
import java.util.*;
import org.jibble.simpleftp.*;  //simpleftp.jar を使うためのimport文

public class FTPsend extends JFrame implements ActionListener{
    
   JLabel prompt = new JLabel("ユーザ名を入力");     
   JTextField text = new JTextField("", 15);	
   JLabel prompt2 = new JLabel("パスワードを入力");
   JTextField text2 = new JTextField("", 15);
   JLabel prompt3 = new JLabel("サーバアドレス入力");
   JTextField text3 = new JTextField("", 15);
   JLabel prompt4 = new JLabel("ファイル名入力");
   JTextField text4 = new JTextField("", 15);
   JButton btn = new JButton("送信");
   JLabel prompt5 = new JLabel("");
   
  private static final int CTRLPORT  = 21; // ftpの制御用のポート
  private static Socket ctrlSocket; // 制御用ソケット
  private static PrintWriter ctrlOutput; // 制御出力用ストリーム
  private static BufferedReader ctrlInput; // 制御入力用ストリーム
  private static byte[] localHostAddress; // ローカルホストのアドレス

  //以下の変数は、実際にはテキストフィールドで指定された値に
  //置き換わります。
  static String serverName="kom.in.osu.ac.jp";
  static String fileName="FTP1.java"; //送信するファイル名
  static String userName="yamada"; //各自のユーザ名
  static String passWord="password"; //パスワード

  /** Creates a new instance of GetURI */
 
   FTPsend(String title){
        setTitle(title);
        //ウィンドウの大きさを設定
        setBounds( 200, 100, 330, 200);
 
        //ボタンが押されたときにactionPerformed()メソッドを呼び出せるように
        //登録
        btn.addActionListener(this);

        //GUI部品を貼り付けるパネルを用意
        JPanel p = new JPanel();
      //  GridLayout layout = new GridLayout(8,1,0,5);
      //  p.setLayout(layout);
        p.add(prompt);
        p.add(text);
        p.add(prompt2);
        p.add(text2);
        p.add(prompt3);
        p.add(text3);
        p.add(prompt4);
        p.add(text4);
 
        p.add(btn);
        p.add(prompt5);
 
        //ContentPaneにパネルを貼り付け
        getContentPane().add(p);
    }
    
    public static void main(String[] args){
      FTPsend inst = new FTPsend("FTP send");

        /* 終了処理を追加 */
        inst.addWindowListener(new WindowAdapter(){
                public void windowClosing(WindowEvent e){System.exit(0);}
        });

        //ウィンドウを表示
        inst.setVisible(true);
    }
        
        
       //ボタンが押されたときの処理
    public void actionPerformed(ActionEvent e) {
        prompt5.setText("送信処理を行います。");
        userName=text.getText();
        passWord=text2.getText();
        serverName=text3.getText();
        
     try { 
        SimpleFTP ftp = new SimpleFTP();
        // Connect to an FTP server on port 21.
        ftp.connect(serverName, 21, userName, passWord);
        prompt5.setText("サーバに接続しました。");

        // Set binary mode.
       //ftp.bin();
        ftp.ascii();
        prompt5.setText("ASCIIモードにします。");
        // Change to a new working directory on the FTP server.
       //   ftp.cwd("web");

        // Upload a file.
        ftp.stor(new File(text4.getText()));
        prompt5.setText("ファイル"+text4.getText()+"を送信しました。");
        // Quit from the FTP server.
        ftp.disconnect();
        prompt5.setText("送信し、接続を切断しました。");
     }
     catch (IOException ev) {
        System.out.println("エラーが発生しました。");
        prompt5.setText("エラーが発生しました。");
         ev.printStackTrace();
     }
   }  
}


▼研究演習ホームに戻る
▼小松原研究室公開ページ
▼経営学科詳細紹介ページ

 !   Information
ここは,研究演習履修者専用のWebページです.

一般向け研究室ページ: www.osu.ac.jp/~komatsu
講義レポート提出管理システムRepadを公開しました。
軽量,フリーのLMSです。

  (c)2003 M. Komatsubara