1. 最近はIOS側(cè)との接続にPHPが使われており、複數(shù)の寫(xiě)真をアップロードする場(chǎng)合、APP側(cè)がバックグラウンドの一枚寫(xiě)真アップロードインターフェースをループで呼び出し、バックグラウンドが寫(xiě)真を保存してパスをデータベースに保存します。ただし、最終的には、データベース內(nèi)に同じ寫(xiě)真が存在するのと同じ數(shù)の寫(xiě)真がアップロードされることになります。これは、インターフェイスが処理できる寫(xiě)真は 1 枚だけであることを意味します。
バックエンド コードは次のとおりです (まだ最適化されていません)
//$_FILES 配列をフォーマットします
結(jié)果は次のようになります:
小伙看你根骨奇佳,潛力無(wú)限,來(lái)學(xué)PHP伐。
これは確かに最適化されていないコードです。 。 。
コードの重要なステップ$actualName = md5(time().substr(str_replace(" ", '_', $ext),5)).".".$ext;
time() + ext を介してパスを取得したら、在同一秒內(nèi),相同后綴的不同圖片上傳
それが同じパスになることを考慮しましたか
データベースの結(jié)果を見(jiàn)ると、これが確認(rèn)されています
解決方法
1. ミリ秒またはマイクロ秒まで正確ですが、重複の可能性もあります
2. パス生成に條件付き亂數(shù)を追加します。重複の可能性もあります
3.
uniqid
まあ、1+2+3を組み合わせましょう、繰り返しの確率が低すぎるので、コウモリでない限り、そのレベルで話しましょう