ホームページ バックエンド開発 PHPチュートリアル phpcms モジュール開発における swfupload の使用の概要_PHP チュートリアル

phpcms モジュール開発における swfupload の使用の概要_PHP チュートリアル

Jul 21, 2016 pm 03:11 PM
phpcms 導入 使用 いくつかの 戻る 開ける 開発する モジュール フォーマル

phpcms モジュール開発に正式に連絡した後、いくつかの機能モジュールを開発しました。その中で、画像の一括アップロードの問題に遭遇したため、phpcms での swfupload の使用方法を検討し始めました。

phpcms に付属のコンテンツ タイプでは、画像グループを直接指定できますが、この画像グループ機能は、静的な HTML ファイル全体をアップロードする必要があるものではありません。

フォルダー全体をアップロードする方法を見つけて、元のファイル名を維持できるようになりました。

その目的は次のように要約されます:

1、システムのファイルとディレクトリ構造を変更しないでください。

2、複数の添付ファイルをアップロードする機能を実現します。

3、アップロード後にフォルダー名を取得できます。

phpcms には添付ファイルのアップロード機能が付属しています。swfupload 関数を使用したいのですが、この関数は phpcms の添付ファイルのアップロード機能に統合されています。その後、それを抽出して変更する必要があります。

最初のステップは、これを呼び出す方法を勉強することです。

まず、Firefox ブラウザで firebug を開き、ネットワーク パネルを開き、phpcm で swfupload によって呼び出されるボタンを見つけます。


コードをコピーします。 コードは次のとおりです。

?m=attachment&c=attachments&a=swfupload&args=10,,1&module=&catid=&authkey=b756a93dea2e627293e88fa9d62af709&pc_hash=iXFbo1このようなリクエストの束を、添付ファイル モジュールの添付ファイル コントローラーでキャプチャしました。
このモジュールのこのコントローラーでこのメソッドを見つけてみましょう。

phpcms/modules/attachemet/attachemts.php内
例 開いて見てください。コードは次のとおりです。

コードをコピーします。

次のコードを実行します。


Public Function SWFUPLOAD () {
$ Grouplist = getcache ('grouplist', 'member'); 'dosubmit'])){

アップロード後の処理なので、とりあえずはswfuploadの導入方法を調べる必要があります。 } else { if($ this-> ;isadmin==0 && !$grouplist[$this->groupid]['allowattachment']) showmessage (L('att_no_permission')); $authkey = $_GET['authkey'];//Get鍵 _GET['args']));//パラメータの分割 = sizecount($site_setting['upload_maxsize']*1024) // アップロード サイズを許可します $att_not_used = param: :get_cookie('att_json'); //未処理のファイルリストを取得します
!isset($att_not_used)) $tab_status = ' class ="on"';//未処理の設定がある場合、ラベル スタイルはオンになります
if(!empty($att_not_used)) $div_status = 'hidden';// それ以外の場合はタグを非表示にします
’を通じて .

前の部分は無視して、アップロードについて説明します。まず、添付ファイルのアップロードが許可されているかどうかを確認します。 次に、$_GET から swfupload のパラメータ引数を取得し、キーを確認して、引数を解析するためのキー パスを取得し、Web サイトの設定を取得し、アップロードが許可されている添付ファイルのサイズを取得します。添付ファイルの Cookie リストの未使用の値。

テンプレートでさまざまな表示を設定します。 最後で最も重要なことは、このテンプレートを見つけて swfupload がどのように導入されるかを確認する必要があるということです。

テンプレートはここにあります: phpcms/modules/attachment/templates/swfupload.tpl.php

テンプレート ファイルを開きます。テンプレート ファイルには多数のファイルが導入されています。


コードをコピーします。 コードは次のとおりです。 admin_tpl ('header', 'attachment');?>
< ;script language="JavaScript" type="text/javascript" src="swfupload/fileprogress.js">




まず、ヘッダーファイルを紹介します。これには jquery などが含まれています。後で使用する必要があるときに、このヘッダーもインポートします。

その後、swfupload のスタイル ファイルと必要な JS がここで呼び出されます。この関数は何をしますか?
この行を過小評価しないでください。swfupload の設定全体がここにあります。
この機能を探してみましょう

phpcms/modules/attachment/functions/golable.func.php にその痕跡が見つかりました。この関数の主な機能は

コードをコピーすることです。コードは次のとおりです:


/* flash上传初始化
     * 初始化swfupload上传中需要的参数
     * @param $module 模块名称
     * @param $catid 栏目id
     * @param $args 传递参数
     * @param $userid 用户id
     * @param $groupid 用户组id
     * @param $isadmin 是否为管理员模式
     */
    function initupload($module, $catid,$args, $userid, $groupid = '8', $isadmin = '0'){
        $grouplist = getcache('grouplist','member');
        if($isadmin==0 && !$grouplist[$groupid]['allowattachment']) return false;
        extract(getswfinit($args));
        $siteid = param::get_cookie('siteid');
        $site_setting = get_site_setting($siteid);
        $file_size_limit = $site_setting['upload_maxsize'];
        $sess_id = SYS_TIME;
        $swf_auth_key = md5(pc_base::load_config('system','auth_key').$sess_id);
        $init =  'var swfu = \'\';
        $(document).ready(function(){
        swfu = new SWFUpload({
            flash_url:"'.JS_PATH.'swfupload/swfupload.swf?"+Math.random(),
            upload_url:"'.APP_PATH.'index.php?m=attachment&c=attachments&a=swfupload&dosubmit=1",
            file_post_name : "Filedata",
            post_params:{"SWFUPLOADSESSID":"'.$sess_id.'","module":"'.$module.'","catid":"'.$_GET['catid'].'","userid":"'.$userid.'","siteid":"'.$siteid.'","dosubmit":"1","thumb_width":"'.$thumb_width.'","thumb_height":"'.$thumb_height.'","watermark_enable":"'.$watermark_enable.'","filetype_post":"'.$file_types_post.'","swf_auth_key":"'.$swf_auth_key.'","isadmin":"'.$isadmin.'","groupid":"'.$groupid.'"},
            file_size_limit:"'.$file_size_limit.'",
            file_types:"'.$file_types.'",
            file_types_description:"All Files",
            file_upload_limit:"'.$file_upload_limit.'",
            custom_settings : {progressTarget : "fsUploadProgress",cancelButtonId : "btnCancel"},

            button_image_url: "",
            button_width: 75,
            button_height: 28,
            button_placeholder_id: "buttonPlaceHolder",
            button_text_style: "",
            button_text_top_padding: 3,
            button_text_left_padding: 12,
            button_window_mode: SWFUpload.WINDOW_MODE.TRANSPARENT,
            button_cursor: SWFUpload.CURSOR.HAND,

File_dialog_Start_handler: FileDialogStart、

File_queued_handler: FileQueued、
File_queue_error_handler: File_Dialog_Complete_handler : FileDialogComplete、
Upload_progress_handler: アップロードプログレス、
アップロード_エラー_ハンドラー: アップロードエラー、
UPload_success_handler: s、lアップロード完了ハンドラー: アップロード完了
});
}) '; $init を返します。
}


テンプレート swfupload.tpl.php を見てみましょう。
このテンプレートは、タブの形式で表示されるように js を使用して、swfupload ボタンを含むタブの ID を見つけることができます。
その ID は tab_swf_1 です


これは div であり、コードは次のとおりです。

コードをコピーします
コードは次のとおりです:

="button" id="btupload" value="" onClick="swfu.startUpload ();" />
>onShow">& lt;font color="red"> /font> , < ;/div>
;/div> change_params()">
PAD-10 "ID =" SWFUPLOAD "& GT;
& LT; Legend & GT; & LT;? PHP Echo L ('リスト')? -list "id =" fsuploadprogress ">
"
ここでは、ID が buttonPlaceHolder であるスパンがあり、構成ファイルに button_placeholder_id: "buttonPlaceHolder" という行があることがわかります。ページがロードされると、ID が buttonPlaceHolder である要素が JS に置き換えられることは明らかです。 swfupload アップロード コントロールを使用します。 次のステップは、ファイルをクリックした後に swf アップロード メソッドをトリガーすることです

コード内に次のコードがあります。このメソッドは swfupload.js で定義されています。


コードは次のとおりです:
< ;input type="button" id="btupload" value="" onClick="swfu.startUpload(); " />


これです。swfupload のアップロード コントロールの使用方法はすでに見つかりました
プログラム内でこれを呼び出す方法

まず最初に、これらの必要なファイルをこのコントロールに表示されるテンプレートに導入する必要があります


コードをコピーします コードは次のとおりです:


< script type="text/javascript ">
userid,$this->groupid ,$this->isadmin )?>



コードは上記の通りです
次に、テンプレート内の swfupload を配置する場所にそのようなタグを記述します


コードをコピーします コードは次のとおりです:
< ; input type="button" id="btupload" value="" onClick="swfu.startUpload();


このようにして swfupload を導入しました。必要な場合は、アップロードやその他の機能を通常どおりに実行できます。
しかし、これではまだ私たちのニーズを満たせません。そして、ファイルを Shenma にアップロードしました。その後、私たちを見つけてファイルを Shenma にアップロードします。
設定ファイル(initupload関数で出力されたもの)にこのような行があります

コードをコピーします

コードは次のとおりです:upload_url:"'.APP_PATH.'index.php?m=attachment&c =attachments&a=swfupload&dosubmit=1 ",
これは明らかに、ファイルを処理するために添付モジュールの添付ファイル コントローラーの swfupload メソッドにファイルをアップロードしたことを明らかにしています

ここは今まで気にしていなかったifの中の物です

取り出して見てください

コードをコピーしてください

コードは次のとおりです:

if( $_POST['swf_auth_key'] != md5(pc_base::load_config('system','auth_key').$_POST['SWFUPLOADSESSID']) || ($_POST['isadmin']==0 && !$grouplist[$_POST['groupid']]['allowattachment'])) exit();
pc_base::load_sys_class('attachment','',0);
$attachment = 新しい添付ファイル($_POST[ 'module'],$_POST['catid'],$_POST['siteid']);
$attachment->set_userid($_POST['userid']);
$aids = $attachment->upload( 'Filedata',$_POST['filetype_post'],'','',array($_POST['thumb_width'],$_POST['thumb_height']),$_POST['watermark_enable']);
if($ aids[0]) {
$filename= (strto lower(CHARSET) != 'utf-8') ? iconv('gbk', 'utf-8', $attachment->uploadedfiles[0]['filename']) : $attachment->uploadedfiles[0]['filename'];
if($attachment-> ;uploadedfiles[0]['isimage']) {
echo $aids[0].','.$this->upload_url.$attachment->uploadedfiles[0]['filepath'].','。 $attachment->uploadedfiles[0]['isimage'].','.$filename;
} else {
$fileext = $attachment->uploadedfiles[0]['fileext'];
if($fileext == 'zip' || $fileext == 'rar') $fileext = 'rar';
elseif($fileext == 'doc' || $fileext == 'docx') $fileext = 'doc';
elseif($fileext == 'xls' || $fileext == 'xlsx') $fileext = 'xls';
elseif($fileext == 'ppt' || $fileext == 'pptx') $fileext = ' ppt';
elseif ($fileext == 'flv' || $fileext == 'swf' || $fileext == 'rm' || $fileext == 'rmvb') $fileext = 'flv';
else $fileext = 'do';
echo $aids[0].','.$this->upload_url.$attachment->uploadedfiles[0]['filepath'].','.$fileext.', '.$filename;
}
exit;
} else {
echo '0,'.$attachment->error();
exit;

この里面がある行は比較的重要です。

最初にシステムのアタッチメント クラスをロードし、ここに到達する方法を使用します。

程序对上传成功做了echooperation.返還的东西是 返了编号,上传后的地址,拓展名,文件名.

これらの西は给谁用の啊 我们还得回去看構成文件.

構成ファイルの一部は、上転送中に各イベントがトリガーする方法です。  有始上传的.有上成功的,有上传失的.等等.

私が見ることができる方法の 1 つは、file_dialog_complete_handler:fileDialogComplete,

これらは swfupload に達しました。

その後私はphpcms/static/swfupload/handler.js里面にあるこの方法に到達しました。

上での転送が成功した後にエコー結果の解析が完了したデータを参照してください。

解析的な方法


复制代代码如下:

function att_show(serverData,file)
{
var serverData = serverData.replace(//g,'');
var data =serverData.split(',') ;
var id = data[0];
var src = data[1];
var ext = data[2];
var filename = data[3];
if(id == 0) {
alert(src) )
return false;
}
if(ext == 1) {
var img = '
';
} else {
var img = '
';
}
$.get('index.php?m=attachment&c=attachments&a=swfupload_json&aid='+id+'&src='+src+'&filename='+filename);
$('#fsUploadProgress').append('< li>
');
$('#attachment_'+id).html(img );
$('#att-status').append('|'+src);
$('#att-name').append('|'+filename);
}

この方法による目的は、id が fsuuploadprogress の要素の領域に、成功した添付ファイルを追加することです。 关键の地方来了.我们swfupload方法里面に添付ファイルがないシステムタイプの例

真正上传添付ファイルはここにあります。私は添付ファイルのアップロード方法を使用してファイルを上送信します。

この添付ファイルファイルのアップロード方法はシステムクラスの場所にあります、つまり phpcms/libs/classes/attachment.class.php の場所です

この里面に私達はアップロード方法里面にアクセスできます


复制码代码如下:
$this->savepath = $this->upload_root.$this->upload_dir .date ('Y/md/');

この自然就是指定了上传到目录.文件名是通过getnameメソッド来获取的.

到此里我们就理清思路了。

システムはこれを実行しています

最初にモジュールパネルの面で swfupload(配置ファイルは関数用に生成されたもの) -> 上転送ファイル -> 添付ファイルモジュールの swfupload メソッドを参照して処理 (システムの添付ファイルのアップロードメソッドを使用してアクセサリを循環します。) 結果を swfupload に返します。メソッド)->処理結果 swfupload 経由のメソッド(fileDialogComplete) が返されます。

上面我们已经实现了在模板里面導入swfupload.但我们使用的配置文件及上传付属品的方法等都是系原来自带的。并现我想要的目录结构和文件命名方法。怎么办。 .

変更

怎么改、最初们要配置文件改掉。 自己のモジュールの領域にある関数ファイルの領域に自己の関数が確立されています。我们用自己の関数名 文件命名はglobal.func.phpこのシステム统会はauto_loadを介して我们の関数数追加

去我们把系统中添付モジュール関数文件下面のglobal.func.php里面のinitupload関数全盘コピー贝进来.只修正その中の一行


复制番号代次:
upload_url :「」。 APP_PATH.'index.php?m=你的モジュール名&c=你的制御器名&a=你的メソッド名&dosubmit=1",

この文件は我们的制御器下面に提交します。写す方法
その後、私はシステムのattachment クラスを削除します。私は自分のモジュールの下にあるクラスファイルを下面に構築します。myattachment.class.php

一我我们自己的分類。集成系の添付ファイル分類を外します。(私有方法コピー过来来。)我们要修正行。最初一点はアップロード方法里面の上传目录変更です。その後、文書を修正します。命名方法.


复制代码代码如下:

function upload($field, $alowexts = '', $maxsize = 0, $overwrite = 0,$thumb_setting = array(), $watermark_enable = 1) {
        if(!isset($_FILES[$field])) {
            $this->error = UPLOAD_ERR_OK;
            return false;
        }
        if(empty($alowexts) || $alowexts == '') {
            $site_setting = $this->_get_site_setting($this->siteid);
            $alowexts = $site_setting['upload_allowext'];
        }
        $fn = $_GET['CKEditorFuncNum'] ? $_GET['CKEditorFuncNum'] : '1';

        $this->field = $field;
        $this->savepath = $this->upload_root.$this->upload_dir.date('Ymd');//这里我们需要修改下.也可以不修改.在我们实例化这个类的时候再来指定目录.
        $this->alowexts = $alowexts;
        $this->maxsize = $maxsize;
        $this->overwrite = $overwrite;
        $uploadfiles = array();
        $description = isset($GLOBALS[$field.'_description']) ? $GLOBALS[$field.'_description'] : array();
        if(is_array($_FILES[$field]['error'])) {
            $this->uploads = count($_FILES[$field]['error']);
            foreach($_FILES[$field]['error'] as $key => $error) {
                if($error === UPLOAD_ERR_NO_FILE) continue;
                if($error !== UPLOAD_ERR_OK) {
                    $this->error = $error;
                    return false;
                }
                $uploadfiles[$key] = array('tmp_name' => $_FILES[$field]['tmp_name'][$key], 'name' => $_FILES[$field]['name'][$key], 'type' => $_FILES[$field]['type'][$key], 'size' => $_FILES[$field]['size'][$key], 'error' => $_FILES[$field]['error'][$key], 'description'=>$description[$key],'fn'=>$fn);
            }
        } else {
            $this->uploads = 1;
            if(!$description) $description = '';
            $uploadfiles[0] = array('tmp_name' => $_FILES[$field]['tmp_name'], 'name' => $_FILES[$field]['name'], 'type' => $_FILES[$field]['type'], 'size' => $_FILES[$field]['size'], 'error' => $_FILES[$field]['error'], 'description'=>$description,'fn'=>$fn);
        }

        if(!dir_create($this->savepath)) {
            $this->error = '8';
            return false;
        }
        if(!is_dir($this->savepath)) {
            $this->error = '8';
            return false;
        }
        @chmod($this->savepath, 0777);

if(!is_writeable($this->savepath)) {
$this->error = '9';
return false;
}
if(!$this->is_allow_upload()) {
$this ->error = '13';
return false;
}
$aids = array();
foreach($uploadfiles as $k=>$file) {
$fileext = fileext['name ' ]);
if($file['error'] != 0) {
$this->error = $file['error'];
return false;
}
}
if(!preg_match("/^( ".$this->alowexts.")$/", $fileext)) {
$this->error = '10';
return false;
}
if($this-&g t;最大サイズ && $file ['size'] > $this->maxsize) {
$this->error = '11';
return false;
}
if(!$this-> file($file['tmp_name' ])) {
$this->error = '12';
return false;
}
//$temp_filename = $this->getname($fileext);//名前この里.我们必要修正下
$temp_filename = $file['tmp_name'].$fileext; //修正オリジナルのシステムファイル名.
$savefile = $this->savepath.$temp_filename; $savefile = preg_replace("/(php|phtml|php3|php4|jsp|exe|dll|asp|cer|asa|shtml|shtm|aspx|asax|cgi|fcgi|pl)(.|$)/i" 、"_\1\2"、$savefile); $filepath = preg_replace(new_addslashes("|^".$this->upload_root."|"), "", $savefile); if(!$this->上書き && file_exists($savefile)) 続行; $upload_func = $this->upload_func; if(@$upload_func($file['tmp_name'], $savefile)) { $this->uploadeds++; @chmod($savefile, 0644); @unlink($file['tmp_name']); $file['name'] = iconv("utf-8",CHARSET,$file['name']); $uploadedfile = array('filename'=>$file['name'], 'filepath'=>$filepath, 'filesize'=>$file['size'], 'fileext'=>$fileext , 'fn'=>$file['fn']); $thumb_enable = is_array($thumb_setting) && ($thumb_setting[0] > 0 || $thumb_setting[1] > 0 ) ? 1:0; $image = 新しい画像($thumb_enable,$this->サイトid); if($thumb_enable) { $image->thumb($savefile,'',$thumb_setting[0],$thumb_setting[1]); if($watermark_enable) { $image->watermark($savefile, $savefile); $aids[] = $this->add($uploadedfile); $aids を返します。 }


注:この里我们は再システムの添付モジュールを下構築MY_attachment.php ただし、これは样会影响系の添付ファイル上传機能です。


在我们自己的制御器里面.我们今回候就追加自己書込的类了.

复制代码
代码如下:


pc_base::load_app_class('你的モジュール名',' ',0);
🎜
残りの操作は、システムの接続モジュールの下にある接続コントローラーの swfupload メソッドを参照することで変更できます。

これで、システムファイルディレクトリを変更せずに、目的のファイルアップロード機能が完成しました。

http://www.bkjia.com/PHPjc/326932.html

tru​​ehttp://www.bkjia.com/PHPjc/326932.html技術記事 phpcms モジュール開発に正式に連絡した後、いくつかの機能モジュールを開発しました。その中で、画像の一括アップロードの問題に遭遇しました。そこで、phpcms での swfupload の使用方法を検討し始めました。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

BTCC チュートリアル: BTCC 取引所で MetaMask ウォレットをバインドして使用する方法は? BTCC チュートリアル: BTCC 取引所で MetaMask ウォレットをバインドして使用する方法は? Apr 26, 2024 am 09:40 AM

MetaMask (中国語ではリトル フォックス ウォレットとも呼ばれます) は、無料で評判の高い暗号化ウォレット ソフトウェアです。現在、BTCC は MetaMask ウォレットへのバインドをサポートしており、バインド後は MetaMask ウォレットを使用してすぐにログイン、値の保存、コインの購入などが可能になり、初回バインドで 20 USDT のトライアル ボーナスも獲得できます。 BTCCMetaMask ウォレットのチュートリアルでは、MetaMask の登録方法と使用方法、および BTCC で Little Fox ウォレットをバインドして使用する方法を詳しく紹介します。メタマスクウォレットとは何ですか? 3,000 万人を超えるユーザーを抱える MetaMask Little Fox ウォレットは、現在最も人気のある暗号通貨ウォレットの 1 つです。無料で使用でき、拡張機能としてネットワーク上にインストールできます。

おすすめのAI支援プログラミングツール4選 おすすめのAI支援プログラミングツール4選 Apr 22, 2024 pm 05:34 PM

この AI 支援プログラミング ツールは、急速な AI 開発のこの段階において、多数の有用な AI 支援プログラミング ツールを発掘しました。 AI 支援プログラミング ツールは、開発効率を向上させ、コードの品質を向上させ、バグ率を減らすことができます。これらは、現代のソフトウェア開発プロセスにおける重要なアシスタントです。今日は Dayao が 4 つの AI 支援プログラミング ツールを紹介します (すべて C# 言語をサポートしています)。皆さんのお役に立てれば幸いです。 https://github.com/YSGStudyHards/DotNetGuide1.GitHubCopilotGitHubCopilot は、より少ない労力でより迅速にコードを作成できるようにする AI コーディング アシスタントであり、問​​題解決とコラボレーションにより集中できるようになります。ギット

Baidu Netdisk アプリの使用方法 Baidu Netdisk アプリの使用方法 Mar 27, 2024 pm 06:46 PM

クラウド ストレージは今日、私たちの日常生活や仕事に欠かせない部分になっています。中国有数のクラウド ストレージ サービスの 1 つである Baidu Netdisk は、強力なストレージ機能、効率的な伝送速度、便利な操作体験により多くのユーザーの支持を得ています。また、重要なファイルのバックアップ、情報の共有、オンラインでのビデオの視聴、または音楽の聴きたい場合でも、Baidu Cloud Disk はニーズを満たすことができます。しかし、Baidu Netdisk アプリの具体的な使用方法を理解していないユーザーも多いため、このチュートリアルでは Baidu Netdisk アプリの使用方法を詳しく紹介します。まだ混乱しているユーザーは、この記事に従って詳細を学ぶことができます。 Baidu Cloud Network Disk の使用方法: 1. インストール まず、Baidu Cloud ソフトウェアをダウンロードしてインストールするときに、カスタム インストール オプションを選択してください。

NetEase メールボックス マスターの使用方法 NetEase メールボックス マスターの使用方法 Mar 27, 2024 pm 05:32 PM

NetEase Mailbox は、中国のネットユーザーに広く使用されている電子メール アドレスとして、その安定した効率的なサービスで常にユーザーの信頼を獲得してきました。 NetEase Mailbox Master は、携帯電話ユーザー向けに特別に作成された電子メール ソフトウェアで、電子メールの送受信プロセスが大幅に簡素化され、電子メールの処理がより便利になります。 NetEase Mailbox Master の使い方と具体的な機能について、以下ではこのサイトの編集者が詳しく紹介しますので、お役に立てれば幸いです。まず、モバイル アプリ ストアで NetEase Mailbox Master アプリを検索してダウンロードします。 App Store または Baidu Mobile Assistant で「Ne​​tEase Mailbox Master」を検索し、画面の指示に従ってインストールします。ダウンロードとインストールが完了したら、NetEase の電子メール アカウントを開いてログインします。ログイン インターフェイスは次のとおりです。

どのAIプログラマーが一番優れているでしょうか? Devin、Tongyi Lingma、SWE エージェントの可能性を探る どのAIプログラマーが一番優れているでしょうか? Devin、Tongyi Lingma、SWE エージェントの可能性を探る Apr 07, 2024 am 09:10 AM

世界初の AI プログラマー Devin の誕生から 1 か月も経たない 2022 年 3 月 3 日、プリンストン大学の NLP チームはオープンソース AI プログラマー SWE-agent を開発しました。 GPT-4 モデルを利用して、GitHub リポジトリの問題を自動的に解決します。 SWE ベンチ テスト セットにおける SWE エージェントのパフォーマンスは Devin と同様で、平均 93 秒かかり、問題の 12.29% を解決しました。専用端末と対話することで、SWE エージェントはファイルの内容を開いて検索したり、自動構文チェックを使用したり、特定の行を編集したり、テストを作成して実行したりできます。 (注: 上記の内容は元の内容を若干調整したものですが、原文の重要な情報は保持されており、指定された文字数制限を超えていません。) SWE-A

Go 言語を使用してモバイル アプリケーションを開発する方法を学ぶ Go 言語を使用してモバイル アプリケーションを開発する方法を学ぶ Mar 28, 2024 pm 10:00 PM

Go 言語開発モバイル アプリケーション チュートリアル モバイル アプリケーション市場が活況を続ける中、ますます多くの開発者が Go 言語を使用してモバイル アプリケーションを開発する方法を検討し始めています。シンプルで効率的なプログラミング言語として、Go 言語はモバイル アプリケーション開発でも大きな可能性を示しています。この記事では、Go 言語を使用してモバイル アプリケーションを開発する方法を詳しく紹介し、読者がすぐに始めて独自のモバイル アプリケーションの開発を開始できるように、具体的なコード例を添付します。 1. 準備 始める前に、開発環境とツールを準備する必要があります。頭

Xiaomi Autoアプリの使い方 Xiaomi Autoアプリの使い方 Apr 01, 2024 pm 09:19 PM

Xiaomi 車用ソフトウェアは、車のリモート制御機能を提供し、ユーザーが携帯電話やコンピュータを介して車両のドアや窓の開閉、エンジンの始動、車両のエアコンやオーディオの制御など、車両を遠隔制御できるようにします。このソフトウェアの使い方や内容について、一緒に学びましょう。 Xiaomi Auto アプリの機能と使用方法の包括的なリスト 1. Xiaomi Auto アプリは 3 月 25 日に Apple AppStore で公開され、Android スマートフォンのアプリストアからダウンロードできるようになりました; 車の購入: 主要なハイライトと技術パラメータについて学びますXiaomi Auto のサービスを利用して、試乗の予約をし、Xiaomi 車の設定と注文を行い、車の受け取りの To-Do 項目のオンライン処理をサポートします。 3. コミュニティ: Xiaomi Auto ブランド情報を理解し、車の経験を交換し、素晴らしいカーライフを共有します; 4. 車の制御: 携帯電話はリモコン、遠隔制御、リアルタイム セキュリティ、簡単です。

Go でスペースを正しく使用する方法 Go でスペースを正しく使用する方法 Mar 29, 2024 pm 03:42 PM

Go 言語は、シンプルで効率的、同時実行性の高いプログラミング言語であり、Google によって開発されたオープンソース言語です。 Go 言語では、スペースの使用は非常に重要であり、コードの可読性と保守性を向上させることができます。この記事では、Go 言語でスペースを正しく使用する方法と具体的なコード例を紹介します。スペースを正しく使用する必要がある理由 プログラミング プロセスでは、スペースの使用はコードの読みやすさと美しさにとって非常に重要です。スペースを適切に使用すると、コードがより明確で読みやすくなり、

See all articles