顯示文章

這裡允許您檢視這個會員的所有文章。請注意, 您只能看見您有權限閱讀的文章。


文章 - id4fox

頁: 1 2 [3] 4
61
php本身無法處理超過2G以上的檔案。
除非你重新編譯php 並加上 -D_FILE_OFFSET_BITS=64 的參數
喔喔! 這樣就明瞭了
我來試著重編 php 吧
謝謝各位學長姐的指導!!!

62
那要不要試試看 php call ftp 上傳的方式呢?
http://curl.haxx.se/libcurl/php/examples/ftpupload.html
我沒有用過,所以先把網站上的範例複製來用用看 (p.s : 12行的${ftppasswd} 名子跟上面不合~ )
改設定
$localfile = "aaa.bmp";
$ftpserver = "192.168.1.XXX";
$ftppath   = "/upload_dir";
$ftpuser   = "USER";
$ftppass   = "123456";
結果是
Warning: fopen(aaa.bmp) [function.fopen]: failed to open stream: No such file or directory in /var/www/html/test.php on line 16
Warning: curl_setopt(): supplied argument is not a valid File-Handle resource in /var/www/html/test.php on line 21
Warning: filesize() [function.filesize]: stat failed for aaa.bmp in /var/www/html/test.php on line 25

失敗了~我是不是少作了什麼?
此外 $localfile 指定檔案 不需要指定路徑嗎?
如果要, 是不是有除了 input type=file 更好的傳遞路徑的方法呢?

63
你的 apache 支援處理到 4GB 的檔案能力嗎?你可以建立 4GB 檔案後看看瀏覽器是否可以下載,若不行表示你的 apache 不支援大檔案,下載不行就更別說上傳了。
剛剛測試了一下下載, 4GB的檔案, 是沒問題的~

64
瀏覽器端的作業系統是 windows 系列的嗎~~~
基本上 windows os 會有單一 程序可配置記憶體的限制
以前有遇過~~~ 不知有沒有幫助~~~   ::)
恩. 我的Client端是 Windows XP, 用的是 Firefox, 也有試過 IE
Server 是 Linux Fedora 10
單一程序記憶體配置限制,
恩... 如果直接用 ftp 上傳是可以成功的, 那這種可能性可以排除嗎?
Thx

65
建議你先測一下 dd 建立一個 4GB 檔案,然後你的 apache 是否可以正確提供可以 download 回來這樣>

不好意思, 不是很了解~
請問 "apache 是否可以正確提供可以 download 回來" 指的是??
我有用過直接 ftp 直接上傳4GB映像檔給伺服器, 是OK的

66
To yamaka:
『按Submit都沒反應』可能要更正一下,
按下Submit有很快的一閃即過(讀取條閃一下),
感覺就是POST動作被阻擋下來,沒辦法進下一頁面.

To fillano:
SwapTotal:     3899384 kB
SwapFree:      3899336 kB
我是打算上傳一個DVD映像檔
log我看他的修改日期都沒變, 應該沒有記錄(路徑: /var/log/httpd/ )

67
你的硬體有多少記憶體?這樣夠用嗎???
記憶體有 2G 應該不成問題

68
我利用 input type=file , 要post檔案給ftp作上傳
嘗試過 1GB 都可以, 但試了 4GB 的就失敗, 按Submit都沒反應
請問是不是我哪裡設定錯了?
Server version: Apache/2.2.10 (Unix)

我有做以下設定:
[ /etc/httpd/conf/httpd.conf ]加入:
<Files *.php>
       SetOutputFilter PHP
       SetInputFilter PHP
       LimitRequestBody 5242880000000000
</Files>

[ /etc/httpd/conf.d/php.conf ]加入:
<Files *.php>
       SetOutputFilter PHP
       SetInputFilter PHP
       LimitRequestBody 5242880000000000
</Files>

[ /etc/php.ini ]
memory_limit = 125M;
post_max_size = 10G
upload_max_filesize = 10G


69
使用指令 df 來取得硬碟剩餘空間

請問一下 這種會使用在何種應用上?

就是...做這個通常會為了什麼情況而做呢??

我當時想到的是想讓程式事先計算是否有足夠的空間進行檔案上傳
或是讓使用者可以由此看到硬碟使用狀況

70
應該用exec才對

代碼: [選擇]
<?
$mNdiskUsage=exec("df|grep hda5|awk '{print $5}'");
echo $mNdiskUsage;
?>

Description
string exec ( string $command [, array &$output [, int &$return_var]] )
exec() executes the given command.

See Also
system()
passthru()
escapeshellcmd()
pcntl_exec()
backtick operator


 :D 這樣問題就更完美的解決拉 ! Thx!
<?php
$mNdiskUsage=exec("df / | awk '{print \$1 \"\t\" \$3}'");
echo $mNdiskUsage;
?>

71
這樣如何?

$mNdiskUsage=system("df|grep hda1|awk '{print $5}'");

或者,輸出text切一切處理(split by '\n' )。


喔! 原來可以這樣處理啊!
謝謝 hikohan 大大, 酷學園真是個好地方 又學到了.

這樣雖然不能避免 system 的印出, 但可以直接利用 awk (註) 提出需要的字串
我也不用寫程式去拆字串拉! 是個比較接近 Linux 應用的解法.

(註: awk 為 Linux 指令, 可以格式化取出字串資訊, 可查鳥哥)

72
小弟使用的是 Linux (Fedora 10)
想使用指令 df (註) 來取得硬碟剩餘空間如下

<?php
   $tmp = system("df");
?>

但是這樣php會直接將 df 的資訊印出在網頁上,
請問怎麼樣使用 system 能只將結果存入變數而不會印出呢?
謝謝

(註: df 是 Linux 的一個取得硬碟使用狀況的指令, 我想擷取其
      中部分字串)

73
不盡然, 表示有兩個比較大的可能:

1. 您的主機設定, 對外部份有問題: 可能要用其他方式寄信看看, 例如用個人電腦透過這台電腦當 Mail Relay 發送郵件.
2. 您的網路環境有異常: 由於之前正常, 最近發不出去, 那有可能因為 DNS 設定異常, 或者換過 ISP , 而對應的設定未更新所造成.

天阿! 找出原因了, 真的是網路連外不正常,
今天換了塊主機板, 恐怕網路 Gateway 就是那時沒抓好的,
重設後 mail 很 "欣慰" 的出現在 gmail 的垃圾桶理.
謝謝 slime 大大的耐心幫忙, 太感謝了!

P.S : 使用 mail 指令一點錯誤訊息都沒有, 沒事不一定等於好事阿~

74
看要問 Google 還是看您的主機 log 吧....

(或者多寄一份到其他信箱比對看看是哪邊的問題)

我試著寄給其他幾個hotmail信箱, 也都沒收到,
只有寄給伺服器上的使用者收的到
這代表我的信件被其他伺服器攔截了嗎?

75
有試著選擇 "非垃圾信件" 幾次, 真的有回到收信夾 !
但是今天一寄信, 連垃圾框子都看不到寄出去的信~~
到底是怎麼了呢???

76
小弟想讓程式能夠定時回寄log記錄到信箱
所以用了 mail 指令 (版本 12.4 7/29/08),
指令大致為:
         echo "Log Report Information" | mail -s "Log Report" aaa@gmail.com
一開始還能收, 後來就歸類到 垃圾信了!
有時根本收不到.
請問是我少設定捨麼東西嗎?

Kernel : 2.6.27.5-117.fc10.i686

77
你可以參考一下這兩篇文章,應該對你有所幫助:

http://rpm.org/max-rpm/s1-rpm-build-creating-spec-file.html

http://rpm.org/max-rpm/s1-rpm-inside-scripts.html#S2-RPM-INSIDE-BUILD-TIME-SCRIPTS
謝謝 figaro 分享我這兩篇文
我會好好閱讀的 (英文苦手, 但這也是必經之路)

我看了關於Group的說明,原文如下

The group line is used to hold a string that defines how the packaged software should be grouped with other packages. The string consists of a series of words separated by slashes. From left to right, the words describe the packaged software more explicitly. We grouped cdplayer under Applications, because it is an application, and then under Sound, since it is an application that is sound-related.

我解釋為, Group屬性是用來替rpm包裝進行分類的字串,
如此可以幫助一個rpm包裝,與其他rpm包裝擁有群體的關係
其格式由大項目至小項目為由左到右, 而期間以"/"作分隔,
比如一個cd撥放程式可以是 Application/Sound (即屬"應用程式"的"聲音類")

那麼, 我把他視為, 我所要打包的rpm並不與其他rpm有所關聯
所以我並不需要倚照/usr/share/doc/rpm-4.3.3/GROUPS 提供的群組分類模式指定我的rpm群組
甚至可以寫自己的群組以供以後自己的程式開發
請問這樣理解正確嗎?

78
原來如此, 真是誤會大了
太倚賴system()果然不好導致跟exec()都不熟
又上了一課, 謝謝各位學長姐的指導!

79
恩?是不是我對exec()的認識有錯誤?
我一直以為exec()跟system()一樣,是執行其中指定的程式完畢後就回到本程式
聽了kenduest 大大的講法, exec()會在執行後直接取代呼叫的程式
當 exec()內的程式執行完成後, 即子程式也結束了, 所以 exec()的回傳值即子程式的回傳值
而 exec() 後面所寫的程式也不會被執行.
是不是這樣呢? THX

80
我能想到的是......

system()叫用一個可以列出所有程序pid的指令

並令其將結果導入到一個檔案裏面

再來就是去分析這個檔案

然後應該也是以system()叫用的方式砍了

哈!沒試過~~您參考參考

不過以前倒是有兩個以上程序間的資料互傳用這個"暫存檔"的方法解決的

恩...這個方法雖說是可以...
像是說用 pstree -ap 或是 ps -a
但是想想, 如果同時有多個同名程式在運作呢?
比如使用 cdrecord 燒錄, 但已經有其他使用者用 cdrecord 呼叫了另一台燒錄器
如果用新舊清單比對(執行前先列一次,完成後又列一次,然後作比對)
還是有風險~如果新舊清單建立其間有程式插隊或結束 那就糟了~


81
Linux 討論版 / 請問關於編寫 .spec 的問題
« 於: 2009-09-11 16:19 »
小弟最近在練習打包rpm需要編寫 .spec , 有些問題不很清楚,
請各位學長姐指點一下~thx

1. 打包rpm所用的 .spec 內的參數理, 有一項是 Group
其可用組合可以在 /usr/share/doc/rpm-4.3.3/GROUPS 找到
請問我要怎麼知道自己應該設定為那個組合?
又該屬性的具有什麼功能?

2. 看網路上的範例發現很多內建參數 %{}
有沒有文件是可以了解我到底有哪些內建參數可以用?

Thanks

82
傷腦經, 這樣好像又回到原點的感覺~
exec() 系列我看了看好像沒有回傳指定程式的回傳值
而system()又無法取得pid
還是我漏了什麼 ?

83
既然已經用 system() 了
乾脆再用 killall

system("wget http://somewhere/somefile &");
system("killall wget");

恩...雖說 killall 也是一個方法~
但這樣也可能會影響其他使用者, 所以比較堅持用 pid
就可以 system("kill -9 [pid]");
(我還是對 system() 很依賴阿~)
還是謝謝提醒 thx  ;)

84
 :o 原來如此! 真上了一課, 我太依賴 system("&") 了
有恍然大悟的感覺 謝謝 twu2 大大!!!

我的理解如下:

////////////////////////////////////////
int c_rtn = 0;
int c_status = 0;
int c_pid = fork();

if(c_pid == 0)
{
   c_rtn = system("OXABC");
   return c_rtn;
}else
{
  waitpid(c_pid,&c_status,0);
  // 其 c_status 即為回傳值
}
////////////////////////////////////////
學到了! thx  :D

85
既然要同步執行, 就用 fork() 加上 exec()  去跑不就好了.
母程式用 fork() 取得子程式的 pid, 然後在子程式用 exec() 去執行就可以了.

但是我希望接收程式的回傳值, exec() 好像不行的樣子?

86
system() 是用 block 的方式去執行的吧, 執行的程式沒結束是不會返回的.... 你的程式是暫停等待的狀態, 有沒有 pid 又有什麼作用呢?


我的呼叫有加入 "&" 也就是背景執行~
所以還是需要pid停止他

87
用 fflush() 強迫把 buffer 裡頭的資料直接輸出.

THX 感激! 程式如願的動了,
在printf() 後加入 fflush(stdout);

請問一下大大為什麼會有這種狀況?

88
我寫了個程式迴圈部分如下

for( x=10 ; x>=0 ; x-- )
{
   printf("\r Less %s sec",x);
   sleep(1);
}

為什麼每次都是等了10秒後才印出
Less 0 sec

\n 不會有相同的狀況, 但是會一直換行洗版
\b 的狀況跟 \r 一樣, Please tell me why??? thx

89
 ??? 如題,
程式理有些動作需要呼叫外部的程式,
這時我都會用 system()呼叫 (因為也需要回傳值)
如果子程式失敗卡死, 希望能用 pid 移除他.
但是我不知道怎麼取得子程式 pid ?
請各位大大教教肉腳的我吧~~~

90

你裝了 RHEL 的核心 src 套件,裡面就有該版核心的標準版本(和 kernel.org 一樣),
以及 RedHat 自行修改的所有 patches,和 RedHat 的 kernel config 設定。

你把 patches 上完後,make xconfig,把 config 載入,然後 make bzImage/modules,
『理論上』應該就會出現等同 RHEL 官方的核心檔案。
謝謝 harrier 回應, 你這麼講我就踏實多了, thx

頁: 1 2 [3] 4